//Pro:NOIP2009 T1 P1071 潜伏者
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
const int N=205;
char c[N],y[N],to[N];
char ma[N],am[N];
bool f1[N],f2[N];
int cnt;
int main()
{
scanf("%s",c);
scanf("%s",y);
scanf("%s",to);
int len=strlen(c);
for(int i=0;i<len;++i)
{
if(!f1[y[i]]&&!f2[c[i]])
{
am[c[i]]=y[i],++cnt;
f1[y[i]]=f2[c[i]]=1;
}
else if(!f1[y[i]]||!f2[c[i]])
{
puts("Failed");
return 0;
}
else if(am[c[i]]!=y[i])
{
puts("Failed");
return 0;
}
}
if(cnt!=26)
{
puts("Failed");
return 0;
}
len=strlen(to);
for(int i=0;i<len;++i)
putchar(am[to[i]]);
return 0;
}