# coding: utf-8 import array, bisect, collections, heapq, itertools, math, random, re, string, sys, time sys.setrecursionlimit(10 ** 7) inf = 10 ** 20 mod = 10 ** 9 + 7 def II(): return int(input()) def ILI(): return list(map(int, input().split())) def IAI(LINE): return [ILI() for __ in range(LINE)] def IDI(): return {key: value for key, value in ILI()} N = II() alph_list = [chr(i) for i in range(65, 65 + 26)] def main(): ans = collections.deque() first_char = alph_list[N % 26] ans.append(first_char) if N // 26 > 0: now_num = N // 26 while True: next_div = now_num // 26 next_char = alph_list[now_num % 26 - 1] ans.appendleft(next_char) if next_div == 0: break now_num = next_div return "".join(list(ans)) if __name__ == "__main__": print(main())