#include<cstdio>
#include<cstring>
using namespace std;
char s1[6500],s2[6500],s3[6500],s[6500];
//s1代表用于破解的加密信息;s2代表原信息;s3代表需要破解的加密信息;
int s4[6500]={0};//用于储存对应字母;如果s[i]=0;表示i没有发现与之对应的;
//如果i从复多次值则输出“Failed”;
int main()
{ //freopen("a.in","r",stdin);
//freopen("a.out","w",stdout);
memset(s4,0,sizeof(s4));
cin>>s1>>s2>>s3; //下标从一开始;
int len1=strlen(s1),len2=strlen(s2),len3=strlen(s3);
if(len1>=len2)
{
for(int i=0;i<len2;i++)
{
if(s4[int(s1[i])]==0)
s4[int(s1[i])]=int(s2[i]);
else
{if((int(s2[i]))!=s4[int(s1[i])])
{cout<<"Failed";
return 0;
}
}
}
}
else
{
for(int i=0;i<len1;i++)
if(s4[int(s1[i])]==0)
s4[int(s1[i])]=int(s2[i]);
else
{if((int(s2[i]))!=s4[int(s1[i])])
{cout<<"Failed";
return 0;
}
}
}
for(int i=0;i<len3;i++)
{
if(s4[int(s3[i])]==0)
{
cout<<"Failed";
return 0;
}
else s[i]=(char(s4[int(s3[i])]));
}
for(int i=0;i<len3;i++) cout<<s[i];
//fclose(stdin);
//fclose(stdout);
return 0;
}