const rl = require("readline").createInterface({
    input: process.stdin,
    output: process.stdout,
});

var iter = rl[Symbol.asyncIterator]();

const readline = async () => (await iter.next()).value;

// 加密
function decode(str) {
    const decodeArr = str.split("");
    const len = decodeArr.length;
    let result = JSON.parse(JSON.stringify(decodeArr));
    for (let i = 0; i < len; i++) {
        let item = decodeArr[i];
        if (!isNaN(item)) {
            if (parseInt(item) == 9) {
                result[i] = "0";
            } else {
                result[i] = String(parseInt(item) + 1);
            }
        } else {
            if (item == "z") {
                result[i] = "A";
            } else if (item == "Z") {
                result[i] = "a";
            } else {
                // 判断大小写
                if (item.charCodeAt() >= 97) {
                    // 小写
                    // 转大写 减31
                    result[i] = String.fromCharCode(
                        result[i].charCodeAt() - 31
                    );
                } else {
                    // 大写
                    // 转小写 加33
                    result[i] = String.fromCharCode(
                        result[i].charCodeAt() + 33
                    );
                }
            }
        }
    }
    return result.join("");
}

// 解密 加密逆过程
function encode(str) {
    const encodeArr = str.split("");
    const len = encodeArr.length;
    let result = encodeArr;
    for (let i = 0; i < len; i++) {
        let item = encodeArr[i];
        if (!isNaN(item)) {
            // 数字
            if (parseInt(item) == 0) {
                result[i] = "9";
            } else {
                result[i] = String(parseInt(item) - 1);
            }
        } else {
            if (item == "A") {
                result[i] = "z";
            } else if (item == "a") {
                result[i] = "Z";
            } else {
                // 判断大小写
                if (item.charCodeAt() >= 97) {
                    // 小写
                    // 转大写 减33(往后)
                    result[i] = String.fromCharCode(
                        item.charCodeAt() - 33
                    );
                } else {
                    // 大写
                    // 转大写 加31
                    result[i] = String.fromCharCode(
                        item.charCodeAt() + 31
                    );
                }
            }
        }
    }
    return result.join("");
}

void (async function () {
    let len = 1;
    while ((line = await readline())) {
        // 处理输入出现问题
        let result = "";
        if (len == 1) {
            result += decode(line);
        } else {
            result += encode(line);
        }
        console.log(result);
        len++;
        // 加解密
        // 1.判断当前字母大小写
        // 2.按规则进行变换
        // 2.1 规则 
        // 2.1.1加密
        // 小写转大写  -31
        // 大写转小写  +31
        // 2.1.2解密
        // 小写转大写  +31
        // 大写转小写  -31
        // 3.注意边界条件
        // 3.1 9-> 0
        // 3.2 z->A(-57) Z->a(+7)
    }
})();