import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	}
} import java.util.*; util.* java public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	} main {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long N = sc.nextLong(); N sc.nextLong() sc.nextLong sc long num = 0; num 0 int index = 1; index 1 while (num < N) {
			num += Math.pow(26, index);
			index++;
		} num < N num N {
			num += Math.pow(26, index);
			index++;
		} num += Math.pow(26, index) num Math.pow(26, index) Math.pow Math 26 index index++ index int[] alp = new int[index-1]; alp new int[index-1] index-1 index 1 for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		} int i = index-2; int i = index-2; i index-2 index 2 -1 < i -1 1 i i-- i-- i {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		} {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		} for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			} int j = 26; int j = 26; j 26 -1 < j -1 1 j j-- j-- j {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			} {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			} if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				} Math.pow(26, i)*j <= N Math.pow(26, i)*j Math.pow(26, i) Math.pow Math 26 i j N {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				} if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					} j == 0 j 0 {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					} alp[index-2-i] = 26 alp[index-2-i] alp index-2-i index-2-i index 2 i 26 alp[index-2-i-1]-- alp[index-2-i-1] alp index-2-i-1 i index-2-i-1 index 2 i 1 break; alp[index-2-i] = j alp[index-2-i] alp index-2-i index-2-i index 2 i j N -= Math.pow(26, i)*j N Math.pow(26, i)*j Math.pow(26, i) Math.pow Math 26 i j break; StringBuilder sb = new StringBuilder(); sb new StringBuilder() for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		} int i = alp.length-1; int i = alp.length-1; i alp.length-1 alp.length alp alp.length 1 -1< i -1 1 i i-- i-- i {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		} {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		} int a = alp[i]; a alp[i] alp i if (a == 0) {
				a = 26;
				alp[i-1]--;
			} a == 0 a 0 {
				a = 26;
				alp[i-1]--;
			} a = 26 a 26 alp[i-1]-- alp[i-1] alp i-1 i 1 sb.append((char) ('a'-1+a)) sb.append sb (char) ('a'-1+a) 'a'-1 'a' 1 a System.out.println(sb.reverse()) System.out.println System.out System System.out sb.reverse() sb.reverse sb String[] args args public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	}
} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	}
} Main
import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long N = sc.nextLong();
		long num = 0;
		int index = 1;
		while (num < N) {
			num += Math.pow(26, index);
			index++;
		}
		int[] alp = new int[index-1];
		for (int i = index-2; -1 < i; i--) {
			for (int j = 26; -1 < j; j--) {
				if (Math.pow(26, i)*j <= N) {
					if (j == 0) {
						alp[index-2-i] = 26;
						alp[index-2-i-1]--;
						break;
					}
					alp[index-2-i] = j;
					N -= Math.pow(26, i)*j;
					break;
				}
			}
		}
		StringBuilder sb = new StringBuilder();
		for (int i = alp.length-1; -1< i; i--) {
			int a = alp[i];
			if (a == 0) {
				a = 26;
				alp[i-1]--;
			}
			sb.append((char) ('a'-1+a));
		}
		System.out.println(sb.reverse());
	}
}