import java.util.Scanner;
import java.util.HashMap;
import java.util.Map;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String k = in.next();
String t = in.next();
System.out.println(encryptStr(k,t));
}
}
private static String encryptStr(String key, String text) {
String res = "";
Map<Character, Character> map = new HashMap<Character, Character>();
String encryptKey = key.toUpperCase() + "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < 26; i++) {
map.put((char)('A' + i), getKey(map, encryptKey, i));
}
//从map中找队友的value
for (int i = 0; i < text.length();i++) {
char c = 'A';
//判断如果key是小写,把value转成小写
if(Character.isLowerCase(text.charAt(i))){
c = (char)(map.get(text.toUpperCase().charAt(i))+32);
}else{
c = map.get(text.toUpperCase().charAt(i));
}
res = res + c;
}
return res;
}
//如果前面已经有重复的key,取下一个字符
private static char getKey(Map map, String str, int i) {
if (!map.containsValue(str.toUpperCase().charAt(i))) {
return str.charAt(i);
} else {
return getKey(map, str, i + 1);
}
}
}