#include <bits/stdc++.h>
using namespace std;
const int Kmax=3e6,MAXN=75;
int T,n,m,t,now;
string s;
struct trieN{
int is_l;
int next[MAXN];
}trie[Kmax];
void fil(){
for(int i=0;i<=t;i++){
trie[i].is_l=0;
for(int j=0;j<MAXN;j++){
trie[i].next[j]=0;
}
}
}
void build(int p,int i){
trie[p].is_l++;
now=trie[p].next[s[i]-'0'];
if(!now) now=trie[p].next[s[i]-'0']=++t;
if(i<s.size()-1){
build(now,i+1);
}
}
void find(int p,int i){
if(i==s.size()-1){
cout<<trie[p].is_l<<endl;
}else{
now=trie[p].next[s[i]-'0'];
if(!now) cout<<0<<endl;
else{
find(now,i+1);
}
}
}
int main(){
cin>>T;
while(T--){
t=0;
cin>>n>>m;
for(int i=1;i<=n+m;i++){
cin>>s;
if(i<=n) build(0,0);
else find(0,0);
}
fil();
}
}