#include<bits/stdc++.h>
using namespace std;
using ll=long long;
using db=double;
using ull = unsigned long long;
const ll INF=9223372036854775807;
const int inf=2147483647;
int a[100005];
signed main() {
// freopen("123.in","r",stdin);
// freopen("123.out","w,",stdout);
int t;
cin>>t;
while(t--){
int len,cnt=0;;
bool f=true;
int n,m;
cin>>n>>m;
string s;
cin>>s;
if(s[0]=='0') len=1;
else len=0;
for(int i=0;i<s.size();i++){
if(s[i]=='1') len++;
else a[len]++,cnt++;
}
for(int i=0;i<s.size();i++){
if(cnt!=0 and s[i]=='1' and s[i+1]=='1') f=false;
}
//for(int i=1;i<=len;i++) cout<<a[i]<<' ';
int k=0;
if(s[0]=='1'){
k=a[1];
if(s[s.size()-1]=='0'){
if(a[len]>a[1]) f=false;
else{
for(int i=1;i<len;i++){
//cout<<a[i]<<' ';
if(len-1<=1) f=true;
else if(a[i]!=a[i+1]) f=false;
}
}
}else if(s[s.size()-1]!='0'){
for(int i=1;i<=len;i++){
//cout<<a[i]<<' ';
if(len-1<=1) f=true;
else if(a[i]!=a[i+1]) f=false;
}
}
}else{
k=a[2];
if(s[s.size()-1]=='0'){
if(a[len]>a[2] or a[1]>a[2]) f=false;
else{
for(int i=2;i<len;i++){
//cout<<a[i]<<' ';
if(len-1<=1) f=true;
else if(a[i]!=a[i+1]) f=false;
}
}
}else if(s[s.size()-1]!='0'){
if(a[1]>a[2]) f=false;
else{
for(int i=2;i<=len;i++){
//cout<<a[i]<<' ';
if(len-1<=1) f=true;
else if(a[i]!=a[i+1]) f=false;
}
}
}
}
//cout<<k<<endl;
//puts("");
if(!f){
puts("No");
continue;
}else{
if(k<=n){
puts("Yes");
continue;
}else{
puts("No");
continue;
}
}
}
return 0;
}