#include<bits/stdc++.h>
using namespace std;
const int N=3e6+10;
int T,n,m,g[N][62],t[N],l,u,v,c=1,f;
char s[N];
int main(){
scanf("%d", &T);
while(T--){
scanf("%d%d", &n, &m);
for(int i=1; i<=n; i++){
scanf("%s", s);u=1;l=strlen(s);
for(int j=0; j<l; j++){
if(s[j]>='a'&&s[j]<='z')v=s[j]-'a';
else if(s[j]>='A'&&s[j]<='Z')v=s[j]-'A'+26;
else v=s[j]-'0'+52;
if(!g[u][v])g[u][v]=++c;
u=g[u][v];t[u]++;
}
}
while(m--){
scanf("%s", s);u=1;f=0;l=strlen(s);
for(int i=0; i<l; i++){
if(s[i]>='a'&&s[i]<='z')v=s[i]-'a';
else if(s[i]>='A'&&s[i]<='Z')v=s[i]-'A'+26;
else v=s[i]-'0'+52;
if(!g[u][v]){
f=1;
break;
}
u=g[u][v];
}
printf("%d\n", f?0:t[u]);
}
for(int i=1; i<=c; i++){
for(int j=0; j<62; j++)g[i][j]=0;
t[i]=0;
}
}
return 0;
}