#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)1e18;
const long long mod = (long long)1e9 + 7;
const double eps = (double)1e-9;
const double pi = acos(-1.0);
const int dx[] = {0, 0, 1, 0, -1};
const int dy[] = {0, 1, 0, -1, 0};
const int N = 100500;
void solve() {
  int a, b, cnt = 0;
  string second;
  cin >> a >> b >> second;
  vector<int> v;
  cnt = 0;
  for (int i = 0; i < (int)second.size(); ++i) {
    if (second[i] == 'X') continue;
    int j = i;
    while (j + 1 < (int)second.size() && second[j + 1] == second[j]) j++;
    int len = j - i + 1;
    if (len < b) continue;
    if (b <= len && len < a) {
      cout << "NO" << endl;
      return;
    }
    if (a <= len && len < 2 * b)
      cnt++;
    else
      v.push_back(len);
    i = j;
  }
  if (v.size() == 0) {
    if (cnt % 2 == 0)
      cout << "NO" << endl;
    else
      cout << "YES" << endl;
    return;
  }
  if (v.size() > 1) {
    cout << "NO" << endl;
    return;
  }
  int x = v[0];
  for (int i = 0; i + a <= x; ++i) {
    if ((b <= i && i < a) || (b <= x - a - i && x - a - i < a)) continue;
    if (2 * b <= max(i, x - a - i)) continue;
    int ncnt = cnt;
    if (a <= i && i < 2 * b) ncnt++;
    if (a <= x - a - i && x - a - i < 2 * b) ncnt++;
    if (ncnt % 2 == 0) {
      cout << "YES" << endl;
      return;
    }
  }
  cout << "NO" << endl;
}
int main() {
  cin.tie(NULL);
  cout.tie(NULL);
  ios_base::sync_with_stdio(false);
  int T;
  cin >> T;
  while (T--) solve();
  return 0;
}
