import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
public class Main{
public static void main(String []args) throws Exception{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
// 获取输入字符串
String s1 = br.readLine(); // 待加密字符串
String s2 = br.readLine(); // 待解密字符串
System.out.println(encode(s1)); // 输出加密后的结果
System.out.println(decode(s2)); // 输出解密后的结果
}
// 加密函数
private static String encode(String code) {
//将输入字符串转换为字符数组
char[] t = code.toCharArray();
// 遍历转换每一个字符
for (int i = 0; i < t.length; i++) {
// 当前字符为小写字母(不含z)
if (t[i] >= 'a' && t[i] < 'z') {
// 先减小写再加大写,最后加1,通过隐式转换实现,不用查ASCII码
t[i] = (char)(t[i] - 'a' + 'A' + 1); // 巧妙的方法
}
else if (t[i] == 'z') t[i] = 'A'; // 单独处理z这种边界特殊情况
// 当前字符为大写字母(不含Z)
else if (t[i] >= 'A' && t[i] < 'Z') {
// 先减大写再加小写,实现大写转小写的效果
t[i] = (char)(t[i] - 'A' + 'a' + 1);
}
else if (t[i] == 'Z') t[i] = 'a'; // 特殊情况特殊处理
// 当前字符为数字
else if (t[i] >= '0' && t[i] < '9')
t[i] = (char)(t[i] + 1);
else if (t[i] == '9') t[i] = '0'; // 特殊情况特殊处理
} // 字符数组遍历完毕
// 字符数组转回字符串后返回
return String.valueOf(t);
}
//解密函数 结构大致同上
private static String decode(String password){
char[] t = password.toCharArray();
for(int i=0; i < t.length; i++){
if(t[i]>'a' && t[i]<='z')
t[i] = (char)(t[i] - 'a' + 'A' - 1);
else if(t[i] == 'a')
t[i] = 'Z';
else if(t[i]>'A' && t[i]<='Z')
t[i] = (char)(t[i] - 'A' + 'a' - 1);
else if(t[i] == 'A')
t[i] = 'z';
else if(t[i]>'0' && t[i]<='9')
t[i] = (char)(t[i]-1);
else if(t[i] == '0')
t[i] = '9';
}
return String.valueOf(t);
}
}