#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<algorithm>
#include<cmath>
using namespace std;
void read(int &x){char ch = getchar();x = 0;for (; ch < '0' || ch > '9'; ch = getchar());for (; ch >='0' && ch <= '9'; ch = getchar()) x = x * 10 + ch - '0';}
const int N = 2100;
const int M = 1500010;
int son[M][31],cnt;
int en[M*2];
char ch[M*2];
void insert(){
scanf("%s",ch+1);
int p = 0;
int len = strlen(ch+1);
for(int i =1;i<=len;i++){
int u = ch[i]-'a';
if(!son[p][u])son[p][u] = ++cnt;
p = son[p][u];
}
en[p] = len;
}
long long query(){
int p = 0;
long long ans =0 ;
scanf("%s",ch);
int len = strlen(ch);
for(int i=0;i<len;i++){
int u = ch[i]-'a';
if(!son[p][u]){
if(en[p]){
ans+=en[p];
p = 0;
}else{
return ans;
}
}
p = son[p][u];
}
if(en[p])ans+=en[p];
return ans;
}
void solve(){
printf("%lld\n",query());
}
int main(){
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)insert();
for(int i=1;i<=m;i++){
solve();
}
return 0;
}