#include<bits/stdc++.h>
using namespace std;
typedef long long inr;
typedef unsigned long long unr;
#define fur(y) for(inr i=1;i<=y;i++)
#define fru(i,s,e) for(inr i=s;i<=e;i++)
#define frd(i,s,e) for(inr i=s;i>=e;i--)
#define el <<endl
#define sp <<" "<<
inr n,m,q,T;
inr trie[500005][205],num[500005]= {0},pos=1;
inline void Insert(string str) {
inr p=0;
for(inr i=0; i<str.size(); i++) {
inr n=str[i];
if(trie[p][n]==0) trie[p][n]=pos++;
p=trie[p][n];
num[p]++;
}
}
inline inr find(string str) {
inr p=0;
for(inr i=0; i<str.size(); i++) {
inr n=str[i];
if(trie[p][n]==0) return 0;
p=trie[p][n];
}
return num[p];
}
string ch;
main() {
ios::sync_with_stdio(false);
cin>>T;
while(T--) {
cin>>n>>q;
for(inr i=0; i<=pos; i++)
for(inr j=0; j<=200; j++) trie[i][j]=0;
for(inr i=0; i<=pos; i++) num[i]=0;
pos=1;
for(inr i=1; i<=n; i++) {
cin>>ch;
Insert(ch);
}
for(inr i=1; i<=q; i++) {
cin>>ch;
cout<<find(ch)<<endl;
}
}
return 0;
}