import bisect

import copy

import heapq

import sys

import itertools

import math

import queue

from functools import lru_cache

input = sys.stdin.readline

sys.setrecursionlimit(1000000)

mod = 998244353



def read_values(): return list(map(int, input().split()))

def read_index(): return [int(x) - 1 for x in input().split()]

def read_list(): return list(read_values())

def read_lists(N): return [read_list() for n in range(N)]





def to_char(a):

    return chr(a + ord("a"))



def main():

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



    res = ""

    while N >= 26:

        res = to_char(N % 26) + res

        N //= 26

        N -= 1



    print((to_char(N) + res))





if __name__ == "__main__":

    main()



N = int(eval(input()))



res = ""

while N > 0:

    r = (N - 1) % 26

    res = chr(r + 97) + res

    N -= r + 1

    N //= 26

print(res)
import bisect
import copy
import heapq
import sys
import itertools
import math
import queue
from functools import lru_cache

input = sys.stdin.readline
sys.setrecursionlimit(1000000)
mod = 998244353


def read_values():
    return list(map(int, input().split()))


def read_index():
    return [int(x) - 1 for x in input().split()]


def read_list():
    return list(read_values())


def read_lists(N):
    return [read_list() for n in range(N)]


def to_char(a):
    return chr(a + ord("a"))


def main():
    N = int(eval(input())) - 1
    res = ""
    while N >= 26:
        res = to_char(N % 26) + res
        N //= 26
        N -= 1
    print((to_char(N) + res))


if __name__ == "__main__":
    main()

N = int(eval(input()))
res = ""
while N > 0:
    r = (N - 1) % 26
    res = chr(r + 97) + res
    N -= r + 1
    N //= 26
print(res)

-import bisect -import copy -import heapq -import sys -import itertools -import math -import queue -from functools import lru_cache - -input = sys.stdin.readline -sys.setrecursionlimit(1000000) -mod = 998244353 - - -def read_values(): -    return list(map(int, input().split())) - - -def read_index(): -    return [int(x) - 1 for x in input().split()] - - -def read_list(): -    return list(read_values()) - - -def read_lists(N): -    return [read_list() for n in range(N)] - - -def to_char(a): -    return chr(a + ord("a")) - - -def main(): -    N = int(eval(input())) - 1 -    res = "" -    while N >= 26: -        res = to_char(N % 26) + res -        N //= 26 -        N -= 1 -    print((to_char(N) + res)) - - -if __name__ == "__main__": -    main() +N = int(eval(input())) +res = "" +while N > 0: +    r = (N - 1) % 26 +    res = chr(r + 97) + res +    N -= r + 1 +    N //= 26 +print(res)