#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef int ll;
const ll N=7001000;
string str;
ll T,n,m,g,s[N][130],t[N];
void sClear(ll idx){
for(int i=0;i<=idx;i++)
for(int j=0;j<=122;j++)
s[i][j]=0;
for(int i=0;i<=idx;i++) t[i]=0;
idx=0;
}void ins(string str){
int pre=0,now=0;
for(;now<str.size();now++){
int nch=str[now];
if(!s[pre][nch]) s[pre][nch]=++g;
pre=s[pre][nch];t[pre]++;
}return;
}int qry(string str){
int pre=0,now=0;
for(;now<str.size();now++){
int nch=str[now];
if(!s[pre][nch]) return 0;
pre=s[pre][nch];
}return t[pre];
}int main(){
cin>>T;
while(T--){
cin>>n>>m;
sClear(g);
for(int i=1;i<=n;i++){ cin>>str;ins(str); }
for(int i=1;i<=m;i++){
cin>>str;
ll tmp=qry(str);
cout<<tmp<<endl;
}
}return 0;
}