import org.w3c.dom.ls.LSOutput;

import java.util.*;

import static java.lang.Math.*;

class Main {
    final Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        new Main().run();
    }

    private void run() {
        long n = sc.nextLong();
        int[] m = new int[100];
        Arrays.fill(m, -1);

        for (int i = 1; i < 100; i++) {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        }

        for (int i = 99; i > 0; i--) {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        }
        System.out.println("");
    }
} import org.w3c.dom.ls.LSOutput; LSOutput org.w3c.dom.ls import java.util.*; util.* java import static java.lang.Math.*; import static java.lang.Math.*; import static java.lang.Math.*; class Main {
    final Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        new Main().run();
    }

    private void run() {
        long n = sc.nextLong();
        int[] m = new int[100];
        Arrays.fill(m, -1);

        for (int i = 1; i < 100; i++) {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        }

        for (int i = 99; i > 0; i--) {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        }
        System.out.println("");
    }
} Main final Scanner sc = new Scanner(System.in); sc new Scanner(System.in) public static void main(String[] args) {
        new Main().run();
    } main {
        new Main().run();
    } new Main().run() new Main().run new Main() String[] args args private void run() {
        long n = sc.nextLong();
        int[] m = new int[100];
        Arrays.fill(m, -1);

        for (int i = 1; i < 100; i++) {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        }

        for (int i = 99; i > 0; i--) {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        }
        System.out.println("");
    } run {
        long n = sc.nextLong();
        int[] m = new int[100];
        Arrays.fill(m, -1);

        for (int i = 1; i < 100; i++) {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        }

        for (int i = 99; i > 0; i--) {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        }
        System.out.println("");
    } long n = sc.nextLong(); n sc.nextLong() sc.nextLong sc int[] m = new int[100]; m new int[100] 100 Arrays.fill(m, -1) Arrays.fill Arrays m -1 1 for (int i = 1; i < 100; i++) {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        } int i = 1; int i = 1; i 1 i < 100 i 100 i++ i++ i {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        } {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        } m[i] = (int) (n % 26) m[i] m i (int) (n % 26) n 26 if (m[i] == 0)
                m[i] = 26; m[i] == 0 m[i] m i 0 m[i] = 26 m[i] m i 26 n = (n - m[i]) / 26 n (n - m[i]) / 26 (n - m[i]) n m[i] m i 26 if (n == 0) {
                break;
            } n == 0 n 0 {
                break;
            } break; for (int i = 99; i > 0; i--) {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        } int i = 99; int i = 99; i 99 i > 0 i 0 i-- i-- i {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        } {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        } if (m[i] == -1)
                continue; m[i] == -1 m[i] m i -1 1 continue; System.out.print((char) ('a' + m[i] - 1)) System.out.print System.out System System.out (char) ('a' + m[i] - 1) 'a' + m[i] 'a' m[i] m i 1 System.out.println("") System.out.println System.out System System.out ""
import org.w3c.dom.ls.LSOutput;

import java.util.*;

import static java.lang.Math.*;

class Main {
    final Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        new Main().run();
    }

    private void run() {
        long n = sc.nextLong();
        int[] m = new int[100];
        Arrays.fill(m, -1);

        for (int i = 1; i < 100; i++) {
            m[i] = (int) (n % 26);
            if (m[i] == 0)
                m[i] = 26;
            n = (n - m[i]) / 26;
            if (n == 0) {
                break;
            }
        }

        for (int i = 99; i > 0; i--) {
            if (m[i] == -1)
                continue;
            System.out.print((char) ('a' + m[i] - 1));
        }
        System.out.println("");
    }
}
