#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL toint(string s, int n){
// cout<<s<"\n";
int res = 0;
int j = 0;
for(int i=n-1; i>=0;i--, j++){
if(s[i]=='1'){
res+=pow(2,j);
}
// j++
}
// cout<<res<<"\n";
return res;
}
LL solve(string &s, int i, int m, int n){
if(i==n){
// cout<<s<<"\n";
if(toint(s,n)%m!=0) return 0;
return 1;
}
else{
if(s[i]!='_') return solve(s,i+1,m,n);
else{
s[i] = '1';
LL left = solve(s, i+1, m, n);
s[i] = '0';
LL right = solve(s, i+1, m, n);
return left+right;
}
}
}
int main(){
int t;
cin>>t;
while(t--){
int n,m;
cin>>n>>m;
string s;
cin>>s;
cout<<solve(s,0,m, n)<<"\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgTEw7CgpMTCB0b2ludChzdHJpbmcgcywgaW50IG4pewovLwljb3V0PDxzPCJcbiI7CglpbnQgcmVzID0gMDsKCWludCBqID0gMDsKCWZvcihpbnQgaT1uLTE7IGk+PTA7aS0tLCBqKyspewoJCWlmKHNbaV09PScxJyl7CgkJCXJlcys9cG93KDIsaik7CgkJfQovLwkJaisrCgl9Ci8vCWNvdXQ8PHJlczw8IlxuIjsKCXJldHVybiByZXM7Cn0KCkxMIHNvbHZlKHN0cmluZyAmcywgaW50IGksIGludCBtLCBpbnQgbil7CglpZihpPT1uKXsKLy8JCWNvdXQ8PHM8PCJcbiI7CgkJaWYodG9pbnQocyxuKSVtIT0wKSByZXR1cm4gMDsKCQlyZXR1cm4gMTsKCX0KCWVsc2V7CgkJaWYoc1tpXSE9J18nKSByZXR1cm4gc29sdmUocyxpKzEsbSxuKTsKCQllbHNlewoJCQlzW2ldID0gJzEnOwoJCQlMTCBsZWZ0ID0gc29sdmUocywgaSsxLCBtLCBuKTsKCQkJc1tpXSA9ICcwJzsKCQkJTEwgcmlnaHQgPSBzb2x2ZShzLCBpKzEsIG0sIG4pOwoJCQlyZXR1cm4gbGVmdCtyaWdodDsKCQl9Cgl9Cn0KCmludCBtYWluKCl7CglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkJaW50IG4sbTsKCQljaW4+Pm4+Pm07CgkJc3RyaW5nIHM7CgkJY2luPj5zOwoJCWNvdXQ8PHNvbHZlKHMsMCxtLCBuKTw8IlxuIjsKCX0KCXJldHVybiAwOwp9