#include <iostream>
using namespace std;
const int maxn=100;
char S[maxn][5],temp[5];
int hashTable[26*26*26+10];
int hashFunc(char S[],int len){
int id=0;
for(int i=0;i<len;i++){
id=id* 26 + (S[i]-'A');
}
return id;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
scanf("%s",S[i]);
int id=hashFunc(S[i],3); //将字符串S[i]转换为整数
hashTable[id]++; //该字符串的出现次数加1
}
for(int i=0;i<m;i++){
scanf("%s",temp);
int id=hashFunc(temp,3); //将字符串temp转换为整数
printf("%d\n",hashTable[id]); //输出该字符串的出现次数
}
return 0;
}
/*将字符串S转换为整数*/
int hashFunc(char S[], int len){
int id=0;
for(int i=0;i<len;i++){
id=id*25+s[i]-'A'); //将二十六进制转换为十进制
}
return id;
}
int hashFunc(char S[],int len){
int id=0;
for(int i=0;i<len;i++){
if(S[i]>='A' && S[i]<='Z'){
id=id*52+(S[i]-'A');
}else if(S[i] >='a' && S[i]<='z'){
id=id* 52+(S[i]-'a')+26;
}
}
return id;
}