import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	}
} Main public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	} main {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long N = sc.nextLong(); N sc.nextLong() sc.nextLong sc int aPos = ('a'); aPos ('a') StringBuilder res = new StringBuilder(); res new StringBuilder() while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		} N != 0 N 0 {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		} if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			} N % 26 == 0 N % 26 N 26 0 {
				res.insert(0, 'z');
				N--;
			} res.insert(0, 'z') res.insert res 0 'z' N-- N {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			} res.insert(0, (char) (aPos + (N % 26) - 1)) res.insert res 0 (char) (aPos + (N % 26) - 1) aPos + (N % 26) aPos (N % 26) N 26 1 N /= 26 N 26 System.out.println(res) System.out.println System.out System System.out res String[] args args public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	}
} public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		int aPos = ('a');
		StringBuilder res = new StringBuilder();
		while (N != 0) {
			if (N % 26 == 0) {
				res.insert(0, 'z');
				N--;
			} else {
				res.insert(0, (char) (aPos + (N % 26) - 1));
			}
			N /= 26;
		}
		System.out.println(res);
	}
}