import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String key = br.readLine(); // 获取密匙
        String s = br.readLine();   // 获取明文
        // 密匙有序去重后补全字母
        Set<Character> set = new LinkedHashSet<>();
        for (int i = 0; i < key.length(); i++) // 有序去重
            set.add(key.charAt(i));
        for (int i = 0; i < 26; i++) { // 补全字母
            char cur = (char)('a' + i);
            set.add(cur);
        }
        List<Character> list = new ArrayList<>(set); // 集合转列表
        // 密匙处理结束
        
        // 加密流程
        StringBuffer ans = new StringBuffer();
        for (int i = 0; i < s.length(); i++) { // 加密
            if (s.charAt(i) == ' ') { // 处理空格输入
                ans.append(s.charAt(i));
            }
            else { // 已知输入字符串中仅有小写字母
                int index = (int)(s.charAt(i) - 'a'); // 获取当前字符在26个字母中的索引
                char cur = list.get(index); // 获取当前字符的加密字符
                ans.append(cur);
            }  
        } // 加密流程完毕
        
        // 输出加密后的结果
        System.out.println(ans.toString());
    }
}