import java.util.Scanner;

/**
 * 【简单密码】
 *
 *  描述:现在有一种密码变换算法。
 * 九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,
 * 把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
 * 而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
 * 数字和其它的符号都不做变换。
 *
 *  A-Z的ascii值为 65-90    a-z的ascii值为 97-122
 *  
 *  【注意】‘Z’和‘a’不是连续的,Z是90,a是97
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String nextLine = sc.nextLine();

        char[] chars = nextLine.toCharArray();
        for (char aChar : chars) {
            if ((97 <= aChar) && (aChar <= 122)) {
                System.out.print(char2Number(aChar));
            } else if ((65 <= aChar) && (aChar <= 90)) {
                if (aChar == 90) {  // // 'Z'单独处理 
                    System.out.print((char) (aChar + 7));
                } else {
                    System.out.print((char) (aChar + 33));
                }
            } else {
                System.out.print(aChar);
            }
        } 	
    }

  
    public static char char2Number(char aChar) {
        if ("abc".contains(String.valueOf(aChar))) {
            return '2';
        }
        if ("def".contains(String.valueOf(aChar))) {
            return '3';
        }
        if ("ghi".contains(String.valueOf(aChar))) {
            return '4';
        }
        if ("jkl".contains(String.valueOf(aChar))) {
            return '5';
        }
        if ("mno".contains(String.valueOf(aChar))) {
            return '6';
        }
        if ("pqrs".contains(String.valueOf(aChar))) {
            return '7';
        }
        if ("tuv".contains(String.valueOf(aChar))) {
            return '8';
        }
        if ("wxyz".contains(String.valueOf(aChar))) {
            return '9';
        }
        return '0';
    }
}