var GET = (function () {
    function f(s) {
        return new g(s);
    }

    function g(s) {
        this._s = s.trim().split("\n");
    }

    g.prototype.getValue = function (n) {
        return this.stox(this._s[n]);
    };
    g.prototype.getArray = function (n) {
        return this.stoa(this._s[n]);
    };
    g.prototype.slice = function (s, limit) {
        return this._s.slice(s, +limit + s || undefined).map(v => this.stox(v));
    };
    g.prototype.sliceArray = function (s, limit) {
        return this._s.slice(s, +limit + s || undefined).map(v => this.stoa(v));
    };
    g.prototype.stoa = function (s) {
        return s.split(" ").map(v => this.stox(v));
    };
    g.prototype.stox = function (v) {
        var i = +v;
        return (i === i) ? i : v;
    };
    return f;
})();
var o = GET(require("fs").readFileSync("/dev/stdin", "utf8"));

console.log(main());
function main(){
    var N = o.getValue(0);
    var S = o.getValue(1);

    var alphabet = [
        "A",
        "B",
        "C",
        "D",
        "E",
        "F",
        "G",
        "H",
        "I",
        "J",
        "K",
        "L",
        "M",
        "N",
        "O",
        "P",
        "Q",
        "R",
        "S",
        "T",
        "U",
        "V",
        "W",
        "X",
        "Y",
        "Z"
    ];

    var ans = "";
    for(var i = 0; S.length > i; i++) {
        var index = alphabet.findIndex((v) => S[i] === v);
        ans += alphabet[(N + index) % 26]
    }

    return ans;
}