import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNextLine()) {
String mw = cin.nextLine();
String yw = cin.nextLine();
String mb = cin.nextLine();
System.out.println(getResult(mw, yw, mb));
//cin.nextLine();
System.out.println();
}
}
public static String getResult(String mw, String yw, String mb) {
if (mw.length() < 26) {
return "Failed";
}
Map<String, String> map = new HashMap<String, String>();
for (int i = 0; i < mw.length(); i++) {
String mwChar = String.valueOf(mw.charAt(i));
String ywChar = String.valueOf(yw.charAt(i));
if (map.containsKey(mwChar)) {
if (!ywChar.equals(map.get(mwChar))) {
return "Failed";
}
} else {
if (map.containsValue(ywChar)) {
return "Failed";
}
map.put(mwChar, ywChar);
}
}
if (map.size() < 26) {
return "Failed";
}
StringBuffer result = new StringBuffer();
for (int i = 0; i < mb.length(); i++) {
String mbChar = String.valueOf(mb.charAt(i));
result.append(map.get(mbChar));
}
return result.toString();
}
}
/**************************************************************
Problem: 2288
User: admin
Language: Java
Result: Accepted
Time:3736 ms
Memory:40348 kb
****************************************************************/