dg114514 @ 2024-12-02 17:17:46
#include<bits/stdc++.h>
using namespace std;
template<int _l,int _r> class trie{
#define u t[p][tmp]
vector<vector<int>>t;
vector<int> cnt;
int l,r,tot;
public:
trie(int n):t(n+5,vector<int>(_r-_l+10,0)),l(_l),r(_r),cnt(n+5),tot(0){}
void insert(const string& s){
int p=0,tmp;
for(auto i:s){
tmp=i-l;
if(!u)u=++tot;p=u;
cnt[p]++;
}
}
void clear(){t.clear(),cnt.clear(),tot=0;}
int find(const string& s){
int p=0,tmp;
for(auto i:s){
tmp=i-l;
if(!u)return 0;p=u;
}
return cnt[p];
}
};
signed main(){
// cin.tie(0)->sync_with_stdio(false);
trie<'0','z'> t(200005);
int T,n,q;
cin>>T;
string s;
while(T--){
cin>>n>>q;
while(n--)cin>>s,t.insert(s);
while(q--)cin>>s,cout<<t.find(s)<<"\n";
t.clear();
}
}