#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
#define fuck(x) cout<<#x<<" "<<x<<endl;
struct node
{
int cnt,tag;
node*son[26];
}*root;
char s[105];
node*build()
{
node*tmp=new(node);
tmp->cnt=0;
tmp->tag=0;
memset(tmp->son,0,sizeof(tmp->son));
return tmp;
}
void myinsert()
{
int len=strlen(s);
char*p=s;
node*r=root;
while(*p)
{
int id=*p-'a';
if(!(r->son[id]))
r->son[id]=build();
r=r->son[id];
if((s+len-1)!=p)
(r->cnt)++;
p++;
}
r->tag++;
}
int query1()
{
char*p=s;
node*r=root;
while(*p)
{
int id=*p-'a';
if(!(r->son[id]))
return 0;
p++;
r=r->son[id];
}
return r->tag;
}
int query2()
{
char*p=s;
node*r=root;
while(*p)
{
int id=*p-'a';
if(!(r->son[id]))
return 0;
p++;
r=r->son[id];
}
return r->cnt;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
root=build();
for(int i=1;i<=n;i++)
scanf("%s",s),myinsert();
for(int i=1;i<=m;i++)
{
int ans;
scanf("%s",s);
ans=query1();
cout<<"字符串:"<<s<<"出现了"<<ans<<"次"<<endl;
ans=query2();
cout<<"字符串:"<<s<<"作为前缀出现了"<<ans<<"次"<<endl;
}
return 0;
}