#include <bits/stdc++.h>
const int N=1e6+5;
using namespace std;
int _end[N];
int trie[N][26];
int tot=1,n,m;
void insert(string s){
int p=1,len=s.length();
for(int k=0;k<len;k++){
int ch=s[k]-'a';
if(trie[p][ch]==0) trie[p][ch]=++tot;
p=trie[p][ch];
}
_end[p]++;
}
int search(string s){
int p=1,len=s.length(),ans=0;
for(int k=0;k<len;k++){
int ch=s[k]-'a';
if(trie[p][ch]==0) return ans;
p=trie[p][ch];
if(_end[p]) ans+=_end[p];
}
return ans;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
string s;
cin>>s;
insert(s);
}
for(int i=1;i<=m;i++){
string s;
cin>>s;
cout<<search(s)<<endl;
}
return 0;
}