public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String a = in.nextLine();
String b = in.nextLine();
System.out.println(encrypt(a));
System.out.println(decrypt(b));
}
}
private static char[] mletter = "abcdefghijklmnopqrstuvwxyz".toCharArray();
private static char[] cletter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
private static char[] number = "0123456789".toCharArray();
private static String encrypt(String input) {
char[] arr = input.toCharArray();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
int index = (int)arr[i];
if (arr[i] >= 'a' && arr[i] <= 'z') {
builder.append(cletter[(index - 97 + 1) % 26]); // 字母a的int值是97,我们这里减成0后+1然后对26(a-z=26个字母)取模,再去大写数组里找对应下标就是了
} else if (arr[i] >= 'A' && arr[i] <= 'Z') {
builder.append(mletter[(index - 65 + 1) % 26]);
} else if (arr[i] >= '0' && arr[i] <= '9') {
builder.append(number[(index - 48 + 1) % 10]);
} else {
builder.append(arr[i]);
}
}
return builder.toString();
}
private static String decrypt(String input) {
char[] arr = input.toCharArray();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
int index = (int)arr[i];
if (arr[i] >= 'a' && arr[i] <= 'z') {
builder.append(cletter[(index - 97 + 26 - 1) % 26]); // 字母a的int值是97,为了防止负数出现,我们加26后再取模.PS:取模就跟拨时钟一样,12个钟多拨一圈会回到原点;)
} else if (arr[i] >= 'A' && arr[i] <= 'Z') {
builder.append(mletter[(index - 65 + 26 - 1) % 26]);
} else if (arr[i] >= '0' && arr[i] <= '9') {
builder.append(number[(index - 48 + 10 - 1) % 10]);
} else {
builder.append(arr[i]);
}
}
return builder.toString();
}
}