MLE on #1
// author: TMJYH09
// create time: 2022/04/29 20:44:54
#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
const int N = 3e6+10;
int trie[N][123],idx=1;
int cnt[N];
void init(){
for(int i=1;i<=idx;i++){
cnt[i]=0;
for(int j=0;j<123;j++){
trie[i][j]=0;
}
}
idx=1;
}
void insert(string s){
int p=1;
for(int i=0;i<s.size();i++){
if(!trie[p][s[i]])trie[p][s[i]]=++idx;
cnt[p]++;
p=trie[p][s[i]];
}
cnt[p]++;
}
int query(string s){
int p=1;
for(int i=0;i<s.size();i++){
if(!trie[p][s[i]])return 0;
p=trie[p][s[i]];
}
return cnt[p];
}
int main(){
ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);
int T;cin>>T;
while(T--){
int n,q;cin>>n>>q;
init();
while(n--){string s;cin>>s;insert(s);}
while(q--){string s;cin>>s;cout<<query(s)<<endl;}
}
return 0;
}