from collections import deque

import math





def main():

    n = int(input())

    if n == 1:

        print('a')

        return

    digits = deque()

    alpha = ord('a') - 1

    maxex = int(math.log(n-1, 26))

    ex = 1

    for ex in range(1, maxex + 2):

        bb = pow(26, ex - 1)

        aa = bb * 26

        rem = n % aa // bb

        n -= bb * rem

        if rem == 0:

            if n == 0:

                break

            rem += 26

            n -= aa

        digits.appendleft(chr(alpha + rem))



    [print(d, end='') for d in digits]

    print()





if __name__ == '__main__':

    main()

from collections import deque





def main():

    n = int(eval(input()))

    base = 26

    orig = ord('a')

    ans = deque()

    for exp in range(1, 12):

        if (tmp := pow(base, exp)) >= n:

            n -= 1  # zero_indexed for ASCII mod

            for digit in range(exp):

                ans.appendleft(chr(orig + n % base))

                n //= base

            break

        else:

            n -= tmp

    print((''.join(ans)))





if __name__ == '__main__':

    main()

from collections import deque
import math


def main():
    n = int(input())
    if n == 1:
        print("a")
        return
    digits = deque()
    alpha = ord("a") - 1
    maxex = int(math.log(n - 1, 26))
    ex = 1
    for ex in range(1, maxex + 2):
        bb = pow(26, ex - 1)
        aa = bb * 26
        rem = n % aa // bb
        n -= bb * rem
        if rem == 0:
            if n == 0:
                break
            rem += 26
            n -= aa
        digits.appendleft(chr(alpha + rem))
    [print(d, end="") for d in digits]
    print()


if __name__ == "__main__":
    main()

from collections import deque


def main():
    n = int(eval(input()))
    base = 26
    orig = ord("a")
    ans = deque()
    for exp in range(1, 12):
        if (tmp := pow(base, exp)) >= n:
            n -= 1  # zero_indexed for ASCII mod
            for digit in range(exp):
                ans.appendleft(chr(orig + n % base))
                n //= base
            break
        else:
            n -= tmp
    print(("".join(ans)))


if __name__ == "__main__":
    main()

-import math -    n = int(input()) -    if n == 1: -        print("a") -        return -    digits = deque() -    alpha = ord("a") - 1 -    maxex = int(math.log(n - 1, 26)) -    ex = 1 -    for ex in range(1, maxex + 2): -        bb = pow(26, ex - 1) -        aa = bb * 26 -        rem = n % aa // bb -        n -= bb * rem -        if rem == 0: -            if n == 0: -                break -            rem += 26 -            n -= aa -        digits.appendleft(chr(alpha + rem)) -    [print(d, end="") for d in digits] -    print() +    n = int(eval(input())) +    base = 26 +    orig = ord("a") +    ans = deque() +    for exp in range(1, 12): +        if (tmp := pow(base, exp)) >= n: +            n -= 1  # zero_indexed for ASCII mod +            for digit in range(exp): +                ans.appendleft(chr(orig + n % base)) +                n //= base +            break +        else: +            n -= tmp +    print(("".join(ans)))