//6_1_2: Babelfish 英文单词和外语单词之间的转换 POJ2503
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxc = 10 + 5;
const int maxn = 100000 + 5;
int n;
struct info
{
char org[maxc];
char trs[maxc];
}dict[maxn];
bool isEmpty(char str[])
{
int i = 0;
while(str[i])
{
if(str[i] >= 'a' && str[i] <= 'z') return false;
i++;
}
return true;
}
void quick_sort(int st,int ed) //快排算法
{
int i = st,j = ed;
info temp;
if(st < ed)
{
temp = dict[st];
while(i != j)
{
while(j > i && strcmp(dict[j].trs,temp.trs) >= 0) j--;
dict[i] = dict[j];
while(i < j && strcmp(dict[i].trs,temp.trs) <= 0) i++;
dict[j] = dict[i];
}
dict[i] = temp;
quick_sort(st,i - 1);
quick_sort(i + 1,ed);
}
}
int find(char trs[])
{
int low = 0,hig = n,mid,ans;
while(low <= hig)
{
mid = (low + hig) / 2;
ans = strcmp(trs,dict[mid].trs);
if(ans == 0) return mid;
else if(ans < 0) hig = mid - 1;
else if(ans > 0) low = mid + 1;
}
return -1;
}
int main()
{
char str[maxc * 2];
int i = 0;
gets(str);
while(!isEmpty(str))
{
sscanf(str,"%s%s",dict[i].org,dict[i].trs);
i++;
gets(str);
}
n = i - 1;
quick_sort(0,n);
while(scanf("%s",str) != EOF)
{
i = find(str);
if(i < 0) printf("eh\n");
else printf("%s\n",dict[i].org);
}
return 0;
}
/*测试结果:通过POJ2503检测
dog ogday
cat atcay
pig igpay
froot ootfray
loops oopslay
atcay
cat
ittenkay
eh
oopslay
loops
^Z
请按任意键继续. . .
*/