import bisect,collections,copy,heapq,itertools,math,string,sys,queue from decimal import Decimal def I(): return input() def IS(): return input().split() def II(): return int(input()) def IIS(): return map(int,input().split()) def LIIS(): return list(map(int,input().split())) def ZER(N): return [False for _ in range(N)] INF=float("inf") MOD=10**9+7 #     V #   / ̄ψ ̄\ #  | 合格祈願 | #  |_____| ############################################################################## def rot_n(s, n): global N answer = '' for letter in s: if letter.isupper(): answer += chr(ord('A') + (ord(letter)-ord('A')+n) % 26) elif letter.islower(): answer += chr(ord('a') + (ord(letter)-ord('a')+n) % 26) else: val=int(letter) if val+N>9: answer+=rot_n("CpCzNkSuTbEoA",val+N-10) else: answer+=str(val+N) return answer S=I();N=II() print(rot_n(S,N))