#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1000010;
struct node{
int p,ch[30];
char t[15];
}a[maxn];
int cnt,n,T;
char s1[15],s2[15],tmp[30];
int main(){
cnt=1;
while(gets(tmp)){
if(!tmp[0])break;
sscanf(tmp,"%s %s",s1,s2);
int len=strlen(s2);
int cur=1;
for(int j=0;j<len;j++){
if(!a[cur].ch[s2[j]-'a']){
a[cur].ch[s2[j]-'a']=++cnt;
cur=cnt;
}else cur=a[cur].ch[s2[j]-'a'];
}
a[cur].p=1;
strcpy(a[cur].t,s1);
}
while(gets(tmp)){
int len=strlen(tmp);
int cur=1,wu=0;
for(int j=0;j<len;j++){
if(!a[cur].ch[tmp[j]-'a']){
wu=1;break;
}else cur=a[cur].ch[tmp[j]-'a'];
}
if(a[cur].p==1 && !wu)printf("%s\n",a[cur].t);
else printf("eh\n");
}
return 0;
}
08-04
113
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-26
521
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)