import string s = input() n = int(input()) assert 1 <= len(s) <= 100 and 0 <= n <= 10**18 for i in range(min(10, n)): t = [] for j in range(len(s)): if s[j] in string.ascii_lowercase: t += [chr((ord(s[j]) - 96) % 26 + 97)] elif s[j] in string.ascii_uppercase: t += [chr((ord(s[j]) - 64) % 26 + 65)] elif s[j] in string.digits: if int(s[j]) <= 8: t += [str(int(s[j]) + 1)] else: t += ['C', 'p', 'C', 'z', 'N', 'k', 'S', 'u', 'T', 'b', 'E', 'o', 'A'] else: 0/0 s = t if n > 10: n -= 10 n %= 26 t = [] for i in range(len(s)): if s[i] in string.ascii_lowercase: t += [chr((ord(s[i]) - 97 + n) % 26 + 97)] elif s[i] in string.ascii_uppercase: t += [chr((ord(s[i]) - 65 + n) % 26 + 65)] else: 0/0 s = t print("".join(s))