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