#include<iostream>
using namespace std;
struct s //用来读入字典
{
string n,m;
}p[105];
int main(){
int a;
string b,c="",d=""; //b是读入的需要翻译的句子,c是截取字符间的子串的,d是存正确答案的
cin>>a;
for(int i=0;i<a;i++)cin>>p[i].n>>p[i].m; //输入字典
cin>>b;
b=b+'.'; //为32行做铺垫
int t=b.size();
for(int i=0;i<t;i++){
if(b[i]>96 && b[i]<123) //读入子串
c=c+b[i];
else{ //如果是标点
if(c==""){ //判断连续标点,防止后面多个"UNK"
d=d+b[i];
continue;
}
int k=0; //用来计是不是每种字典单词都不满足
for(int j=0;j<a;j++){
if(c==p[j].n){ //判断与字典中元素是否相同,相同将子串进行翻译,读入正确答案(字符串d)
d=d+p[j].m;
c=""; //清空子串
}
else k++; //不满足就加1
}
if(k==a)d=d+"UNK"; //判断是不是都不满足,不满足则将"UNK"写入正确答案(字符串d)
if(i==t-1 && b[i]=='.')break; //前面13行提前写过,防止最后一个子串多打一个标点,下面就已经写入标点了,所以写在这上面
else d=d+b[i]; //写最后一个标点
}
}
cout<<d; //打印正确答案
return 0;
}