#include<bits/stdc++.h>usingnamespace std;constint N =1e6+10;int n, m;int son[N][26];//储存树中每个节点的子节点int cnt[N];//存储以每个节点结尾的单词数量int idx;//下标是0的点,既是根节点,又是空节点//插入一个字符串voidinsert(char str[]){int res =0;int p =0;for(int i =0; str[i]; i++){int u = str[i]-'a';if(!son[p][u]) son[p][u]=++idx;
p = son[p][u];}
cnt[p]++;}//查询一个字符串intquery(char str[]){int res =0;int p =0;for(int i =0; str[i]; i++){int u = str[i]-'a';if(!son[p][u])return res;
p = son[p][u];if(cnt[p]>0) res+=cnt[p];}return res;}intmain(){
cin >> n >> m;for(int i =1; i <= n; i++){char s[N];
cin >> s;insert(s);}for(int i =1; i <= m; i++){char s[N];
cin >> s;
cout <<query(s)<< endl;}return0;}