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);
        }
    }
}