rt
#include<bits/stdc++.h>
using namespace std;
const int N=3e6+5;
class Trie
{
private:
int first,edge[N][65],sum[N];
public:
void init()
{
for(int i=0;i<=first;i++)
{
sum[i]=0;
for(int j=0;j<=59;j++)edge[i][j]=0;
}
first=0;
}
int get_value(char x)
{
if(x>='0'&&x<='9')return x-'0';
if(x>='a'&&x<='z')return x-'a'+10;
return x-'A'+36;
}
void insert(string x)
{
int root=0,len=x.size(),value;
x=' '+x;
for(int i=1;i<=len;i++)
{
value=get_value(x[i]);
if(edge[root][value]==0)edge[root][value]=++first;
root=edge[root][value];
sum[root]++;
}
}
int query(string x)
{
int root=0,len=x.size(),value;
x=' '+x;
for(int i=1;i<=len;i++)
{
value=get_value(x[i]);
if(edge[root][value]==0)return 0;
root=edge[root][value];
}
return sum[root];
}
}trie;
string x;
int T,n,m;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
cin>>T;
while(T--)
{
trie.init();
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>x,trie.insert(x);
for(int i=1;i<=m;i++)
{
cin>>x;
cout<<trie.query(x)<<'\n';
}
}
return 0;
}