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