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 ****************************************************************/