import java.util.Scanner;

public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	}


} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	}


} Main public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	} main {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	} try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		} {
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		} Scanner scan = new Scanner(System.in) Scanner scan = new Scanner(System.in) new Scanner(System.in) long N = scan.nextLong(); N scan.nextLong() scan.nextLong scan long max = 0; max 0 long count = 1; count 1 long num = 0; num 0 while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			} true {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			} if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				} max+1<=N&&N<=max+(long)Math.pow(26,count) max+1<=N max+1 max 1 N N<=max+(long)Math.pow(26,count) N max+(long)Math.pow(26,count) max (long)Math.pow(26,count) Math.pow Math 26 count {
					num = N-max;
					break;
				} num = N-max num N-max N max break; {
					max = max+(long)Math.pow(26,count);
					count++;
				} max = max+(long)Math.pow(26,count) max max+(long)Math.pow(26,count) max (long)Math.pow(26,count) Math.pow Math 26 count count++ count StringBuffer sb = new StringBuffer(); sb new StringBuffer() num-- num for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			} int i = 0; int i = 0; i 0 i<count i count i++ i++ i {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			} {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			} long x = num%26; x num%26 num 26 num = num/26 num num/26 num 26 char c = (char)(x+97); c (char)(x+97) x 97 sb.append(c) sb.append sb c String S = sb.reverse().toString(); S sb.reverse().toString() sb.reverse().toString sb.reverse() sb.reverse sb System.out.println(S) System.out.println System.out System System.out S String[]args args public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	}


} public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	}


} Main
import java.util.Scanner;

public class Main {
	public static void main(String[]args) {
		try(Scanner scan = new Scanner(System.in)){
			//1000000000000001 = 10^15+1

			long N = scan.nextLong();

			long max = 0;
			long count = 1;

			long num = 0;

			while(true) {
				if(max+1<=N&&N<=max+(long)Math.pow(26,count)) {
					num = N-max;
					break;
				}else{
					max = max+(long)Math.pow(26,count);
					count++;
				}
			}

			//System.out.println(num);
			//System.out.println(count);

			StringBuffer sb = new StringBuffer();
			num--;


			for(int i = 0;i<count;i++) {
				long x = num%26;
				num = num/26;
				char c = (char)(x+97);
				//System.out.println(x);
				sb.append(c);
			}

			String S = sb.reverse().toString();

			//System.out.println();
			System.out.println(S);

		}


	}


}
