#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int nex = 2e5 + 5;
void solve() {
  int a, b;
  cin >> a >> b;
  string s;
  cin >> s;
  int cnt = 0;
  vector<int> v;
  for (int i = 0; i < ((int)s.size()); i++) {
    if (s[i] == 'X') {
      if (cnt) v.push_back(cnt);
      cnt = 0;
    } else {
      cnt++;
    }
  }
  if (cnt) v.push_back(cnt);
  cnt = 0;
  int val = 0;
  for (int x : v) {
    if (x < a && x >= b) {
      cout << "NO\n";
      return;
    }
    if (x >= a && x < 2 * b)
      cnt++;
    else if (x >= 2 * b) {
      if (val) {
        cout << "NO\n";
        return;
      }
      val = x;
    }
  }
  cnt = cnt;
  for (int i = 0; i <= (val - a); i++) {
    int x = i, y = val - a - i, lcnt = cnt;
    if (x < 2 * b && y < 2 * b) {
      if (x < a && x >= b) continue;
      if (y < a && y >= b) continue;
      if (y >= a) lcnt++;
      if (x >= a) lcnt++;
      if (lcnt % 2 == 0) {
        cout << "YES\n";
        return;
      }
    }
  }
  if (val == 0) {
    if (cnt % 2)
      cout << "YES\n";
    else
      cout << "NO\n";
    return;
  }
  cout << "NO\n";
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  cout << fixed << setprecision(11);
  clock_t beg = clock();
  int t = 1, n;
  cin >> t;
  while (t--) {
    solve();
  }
  clock_t end = clock();
  fprintf(stderr, "%lf sec\n", (double)(end - beg) / (CLOCKS_PER_SEC));
  return 0;
}
