#!/bin/python3
import math
import os
import random
import re
import sys
from string import ascii_lowercase
#
# Complete the 'caesarCipher' function below.
#
# The function is expected to return a STRING.
# The function accepts following parameters:
# 1. STRING s
# 2. INTEGER k
#
def caesarCipher(s, k):
# Write your code here
'''
Step 1.
문제에서 k의 범위가 0 <= k <= 100으로 주어졌기 때문에
알파벳의 길이인 26을 넘어가는 경우가 발생할 수 있으므로
k는 26으로 나눈 나머지 값으로 설정
'''
k = k % 26
'''
Step 2.
일반적인 알파벳의 순서에 맞춘 org_alphabet 리스트와
k만큼 알파벳의 순서를 rotate한 enc_alphabet 리스트를 이용하여
hash_table 딕셔너리 생성
'''
org_alphabet = list(ascii_lowercase)
enc_alphabet = org_alphabet[k:] + org_alphabet[:k]
hash_table = dict(zip(org_alphabet, enc_alphabet))
'''
Step 3.
문자열 s를 hash_table에서 encrypted된 알파벳을 찾아서
answer에 추가
알파벳이 아닌 문자는 문자열 s의 값 그대로 사용
'''
answer = ''
for idx, i in enumerate(s):
try:
if i.isupper():
answer += hash_table[i.lower()].upper()
else:
answer += hash_table[i]
except:
answer += s[idx]
return answer
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input().strip())
s = input()
k = int(input().strip())
result = caesarCipher(s, k)
fptr.write(result + '\n')
fptr.close()