rt,0pts
#include <bits/stdc++.h>
using namespace std;
const int MAX = 1e6 + 5;
int t , q , n , trie[MAX][26] , inx , e[MAX][26];;
string mod , ask;
void insert(string s)
{
int p = 0;
for (int i = 0 ; i < s.length() ; i++)
{
int x = s[i] - 'a';
if (trie[p][x] == 0) trie[p][x] = ++inx;
if (i == s.length() - 1) e[p][x]++;
p = trie[p][x];
}
return;
}
int find(string s)
{
int p = 0 , ans = 0;
for (int i = 0 ; i < s.length() ; i++)
{
int x = s[i] - 'a';
if (!trie[p][x]) return ans;
if (e[p][x]) ans += e[p][x];
p = trie[p][x];
}
return ans;
}
int main()
{
cin >> n >> q;
for (int i = 1 ; i <= n ; i++)
{
cin >> mod;
insert(mod);
}
for (int i = 1 ; i <= q ; i++)
{
cin >> ask;
cout << find(ask) << endl;
}
return 0;
}