#include<bits/stdc++.h>
using namespace std;
int t,n,q,csl;
char cs[3000100];
char Trie[3001000][100];
bool ed[3000100];
int sum[3000100];
int m=1;
void biuld_Trie()
{
int k=1;
for(int i=1;i<=csl;i++)
{
char cc=cs[i];
int c=cc-'0';
if(!Trie[k][c])
Trie[k][c]=++m;
k=Trie[k][c];
sum[k]++;
}
ed[k]=1;
}
int find_Trie()
{
int k=1;
for(int i=1;i<=csl;i++)
{
char cc=cs[i];
int c=cc-'0';
if(!Trie[k][c])
{
k=1;
break;
}
k=Trie[k][c];
}
return sum[k];
}
int main()
{
cin>>t;
while(t--)
{
memset(sum,0,sizeof(sum));
memset(Trie,0,sizeof(Trie));
memset(ed,0,sizeof(ed));
m=1;
cin>>n>>q;
for(int i=1;i<=n;i++)
{
cin>>cs+1;
csl=strlen(cs+1);
biuld_Trie();
}
for(int i=1;i<=q;i++)
{
cin>>cs+1;
csl=strlen(cs+1);
cout<<find_Trie()<<endl;
}
}
return 0;
}