import string

import numpy as np

N = int(eval(input()))

S = list(eval(input()))

A2Z = string.ascii_uppercase



str_index = np.full(len(S), 0)

mod_26 = np.full(len(S), 26)

#print(str_index)



for i in range(len(S)):

    str_index[i] = A2Z.index(S[i])

str_index = (str_index+N) % mod_26

#print(str_index)



tmp = ['']*len(S)

for i in range(len(S)):

    index = int(str_index[i])

    tmp[i] = A2Z[index]

answer = ''.join(tmp)

print(answer)
import string

A2Z = string.ascii_uppercase



N = int(eval(input()))

S = eval(input())



res = ''

for i in range(len(S)):

    index = A2Z.index(S[i])

    res += A2Z[(index+N)%26]

print(res)
import string
import numpy as np

N = int(eval(input()))
S = list(eval(input()))
A2Z = string.ascii_uppercase
str_index = np.full(len(S), 0)
mod_26 = np.full(len(S), 26)
# print(str_index)
for i in range(len(S)):
    str_index[i] = A2Z.index(S[i])
str_index = (str_index + N) % mod_26
# print(str_index)
tmp = [""] * len(S)
for i in range(len(S)):
    index = int(str_index[i])
    tmp[i] = A2Z[index]
answer = "".join(tmp)
print(answer)

import string

A2Z = string.ascii_uppercase
N = int(eval(input()))
S = eval(input())
res = ""
for i in range(len(S)):
    index = A2Z.index(S[i])
    res += A2Z[(index + N) % 26]
print(res)

-import numpy as np +A2Z = string.ascii_uppercase -S = list(eval(input())) -A2Z = string.ascii_uppercase -str_index = np.full(len(S), 0) -mod_26 = np.full(len(S), 26) -# print(str_index) +S = eval(input()) +res = "" -    str_index[i] = A2Z.index(S[i]) -str_index = (str_index + N) % mod_26 -# print(str_index) -tmp = [""] * len(S) -for i in range(len(S)): -    index = int(str_index[i]) -    tmp[i] = A2Z[index] -answer = "".join(tmp) -print(answer) +    index = A2Z.index(S[i]) +    res += A2Z[(index + N) % 26] +print(res)