n=int(input())
s=input()
ls=[]
for i in s:
    s_f=0
    if ord(i)+n<=ord('z'):
        s_f=(ord(i)+n)
    else:
        cha=(ord('z')-ord(i))
        s_f=(ord('a')+(n-cha-1)%26)#n有可能太大了,需要取模,我没取模一直输出乱码
    ls.append(chr(s_f))
print(''.join(ls))
#取模%26
'''
n = int(input())
s = input()
ls = []

for i in s:
    if 'a' <= i <= 'z':
        if ord(i) + n <= ord('z'):
            s_f = ord(i) + n
        else:
            # 修正:减去26的整数倍,而不是减1
            cha = (ord(i) - ord('a') + n) % 26
            s_f = ord('a') + cha
        ls.append(chr(s_f))
    else:
        ls.append(i)  # 处理非字母字符

print(''.join(ls))
'''