#include<iostream>
using namespace std;
//水题,本来想用stl水一下的,就这样吧
char a[50][30],b[50][30];
char s[30];
int main()
{
int l,n,i;
scanf("%d %d",&l,&n);
for(i=0;i<l;i++)
scanf("%s %s",a[i],b[i]);
while(n--)
{
int flag=0;
scanf("%s",s);
for(i=0;i<l;i++)
{
if(strcmp(a[i],s)==0)
{
printf("%s/n",b[i]);
flag=1;
break;
}
}
if(flag==1)
continue;
int len=strlen(s);
if(s[len-1]=='y'&&s[len-2]!='a'&&s[len-2]!='e'&&s[len-2]!='i'&&s[len-2]!='o'&&s[len-2]!='u')
{
s[len-1]='/0';
printf("%s",s);
printf("ies/n");
continue;
}
if(s[len-1]=='o'||s[len-1]=='s'||s[len-1]=='x'||(s[len-2]=='e'&&s[len-1]=='s')||(s[len-2]=='s'&&s[len-1]=='h')||(s[len-2]=='c'&&s[len-1]=='h'))
{
printf("%s",s);
printf("es/n");
continue;
}
printf("%s",s);
printf("s/n");
}
return 0;
}
#include<map>
using namespace std;
int main()
{
int l, n;
cin>>l>>n;
map<string, string>m;
string s, t;
while(l--) {cin>>s>>t; m[s]=t;}
while(n--) {
cin>>s;
if(m.find(s)!=m.end()) cout<<m.find(s)->second<<endl;//学习之
else if(s[s.length()-1]=='y' && s.length()>1 && (
s[s.length()-2]!='a' && s[s.length()-2]!='e' &&
s[s.length()-2]!='i' && s[s.length()-2]!='o' &&
s[s.length()-2]!='u'))
{s[s.length()-1]='i';cout<<s<<"es"<<endl;}
else if(s[s.length()-1]=='o' || s[s.length()-1]=='s' ||
s[s.length()-1]=='x' || (s.length()>1 &&
s[s.length()-1]=='h' && (s[s.length()-2]=='c'
|| s[s.length()-2]=='s')))
cout<<s<<"es"<<endl;
else cout<<s<<"s"<<endl;
}
return 0;
}