#include <bits/stdc++.h>
using namespace std;
char s[300005];
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int n, k;
    scanf("%d%d", &n, &k);
    scanf("%s", s);
    int flag = 0;
    for (int i = 0; i < n; i++) {
      if (s[i % k] != '?') {
        if (s[i] == '?' || s[i] == s[i % k]) {
          s[i] = s[i % k];
        } else {
          flag = 1;
          break;
        }
      } else {
        if (s[i] == '?' || s[i] == s[i % k]) {
          s[i % k] = s[i];
        } else {
          s[i % k] = s[i];
        }
      }
    }
    if (flag) {
      puts("NO");
      continue;
    }
    int aa = 0, bb = 0;
    for (int i = 0; i < k; i++) {
      if (s[i] == '1')
        aa++;
      else if (s[i] == '0')
        bb++;
    }
    if (max(aa, bb) > k / 2)
      puts("NO");
    else
      puts("YES");
  }
}
