def encode(x):

    return chr(x + 97)





N = int(eval(input())) - 1

ans = []

while True:

    q, r = divmod(N, 26)

    ans.append(r)

    if q == 0:

        break

    N //= 26

    N -= 1

print(("".join(map(encode, ans[::-1]))))

def encode(x):

    return chr(x + 97)





def solve(N):

    N -= 1

    ans = []

    while True:

        q, r = divmod(N, 26)

        ans.append(r)

        if q == 0:

            break

        N //= 26

        N -= 1

    return "".join(map(encode, ans[::-1]))





print((solve(int(eval(input())))))

def encode(x):
    return chr(x + 97)


N = int(eval(input())) - 1
ans = []
while True:
    q, r = divmod(N, 26)
    ans.append(r)
    if q == 0:
        break
    N //= 26
    N -= 1
print(("".join(map(encode, ans[::-1]))))

def encode(x):
    return chr(x + 97)


def solve(N):
    N -= 1
    ans = []
    while True:
        q, r = divmod(N, 26)
        ans.append(r)
        if q == 0:
            break
        N //= 26
        N -= 1
    return "".join(map(encode, ans[::-1]))


print((solve(int(eval(input())))))

-N = int(eval(input())) - 1 -ans = [] -while True: -    q, r = divmod(N, 26) -    ans.append(r) -    if q == 0: -        break -    N //= 26 +def solve(N): -print(("".join(map(encode, ans[::-1])))) +    ans = [] +    while True: +        q, r = divmod(N, 26) +        ans.append(r) +        if q == 0: +            break +        N //= 26 +        N -= 1 +    return "".join(map(encode, ans[::-1])) + + +print((solve(int(eval(input())))))