def main(): S0 = input().strip() N = int(input()) replacement = "CpCzNkSuTbEoA" def process_char(c, k): if k == 0: return c if c.isdigit(): num = int(c) if num == 9: new_k = k - 1 return ''.join(process_char(ch, new_k) for ch in replacement) else: possible_steps = 9 - num if possible_steps >= k: return str(num + k) else: new_k = k - possible_steps - 1 return ''.join(process_char(ch, new_k) for ch in replacement) elif c.isupper(): shifted = (ord(c) - ord('A') + k) % 26 return chr(ord('A') + shifted) elif c.islower(): shifted = (ord(c) - ord('a') + k) % 26 return chr(ord('a') + shifted) else: return c result = [] for char in S0: res = process_char(char, N) result.append(res) print(''.join(result)) if __name__ == '__main__': main()