"use strict"
const create = () => {
    const input = require("fs").readFileSync("/dev/stdin", "utf8").trim().split("\n");
    const res = {
        "list": input, "index": 0, "max": input.length,
        "hasNext": function () { return this.index < this.max },
        "next": function () { if (!this.hasNext()) { throw "ArrayIndexOutOfBoundsException"; } else { return this.list[this.index++]; } }
    };
    return res;
}
const o = create();
const next = () => o.next()
const nextInt = () => parseInt(o.next())
const nextStrArray = () => o.next().split(" ")
const nextIntArray = () => o.next().split(" ").map(el => parseInt(el))
const nextCharArray = () => o.next().split("")
const hasNext = () => o.hasNext()
const myout = (...x) => console.log(...x)
const Main = () => {
    let N = BigInt(next())
    const alpha = "abcdefghijklmnopqrstuvwxyz"
    let total = 0n
    let dig = 1n
    let max = 0n
    while (true) {
        dig *= 26n
        total = total + dig
        if (total > N) {
            break
        }
        max++
    }
    let arr = []
    for(let i = 0n; i<max; i++){
        N = N - 26n**i
    }
    while (max >= 0) {
        let tmp = 26n ** max
        for (let i = 0n; i < 27n; i++) {
            if (tmp * i > N) {
                N = N - tmp * (i)
                arr.push(Number(i))
                break
            }
        }
        max--
    }
    let ans = ""
    for(let i = 0; i<arr.length; i++){
        ans = ans + alpha[arr[i]]
    }
    console.log(ans)
}
Main()

