import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	}

} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	}

} Main public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	} main {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long n = sc.nextLong(); n sc.nextLong() sc.nextLong sc char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'}; c {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'} 'a' 'b' 'c' 'd' 'e' 'f' 'g' 'h' 'i' 'j' 'k' 'l' 'm' 'n' 'o' 'p' 'q' 'r' 's' 't' 'u' 'v' 'w' 'x' 'y' 'z' StringBuffer sb = new StringBuffer(); sb new StringBuffer() while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		} n > 0 n 0 {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		} if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			} n <= 26 n 26 {
				sb.insert(0, c[((int)n)-1]);
				break;
			} sb.insert(0, c[((int)n)-1]) sb.insert sb 0 c[((int)n)-1] c ((int)n)-1 ((int)n) 1 break; long result = n % 26; result n % 26 n 26 if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			} result==0 result 0 {
				sb.insert(0, c[25]);
				n-=26;
			} sb.insert(0, c[25]) sb.insert sb 0 c[25] c 25 n-=26 n 26 {
				sb.insert(0, c[((int)result)-1]);
			} sb.insert(0, c[((int)result)-1]) sb.insert sb 0 c[((int)result)-1] c ((int)result)-1 ((int)result) 1 n = n / 26 n n / 26 n 26 System.out.println(sb.toString()) System.out.println System.out System System.out sb.toString() sb.toString sb String[] args args public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	}

} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	}

} Main
import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);
		long n = sc.nextLong();

		char[] c = {'a','b','c','d','e','f','g','h',
			'i','j','k','l','m','n','o','p','q','r',
			's','t','u','v','w','x','y','z'};

		StringBuffer sb = new StringBuffer();

		while(n > 0) {
			if(n <= 26) {
				sb.insert(0, c[((int)n)-1]);
				break;
			}
			long result = n % 26;
			if(result==0) {
				sb.insert(0, c[25]);
				n-=26;
			} else {
				sb.insert(0, c[((int)result)-1]);
			}
			n = n / 26;
		}
		System.out.println(sb.toString());
	}

}