import java.util.*;
public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	}
	
	public static char toS(int n) {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	}
} import java.util.*; util.* java public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	}
	
	public static char toS(int n) {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	} main {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) long n = scan.nextLong(); n scan.nextLong() scan.nextLong scan ArrayList<Character> list = new ArrayList<Character>(); list new ArrayList<Character>() while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		} n > 0 n 0 {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		} int amari = (int) (n % 26); amari (int) (n % 26) n 26 list.add(toS(amari)) list.add list toS(amari) toS amari if(n % 26 == 0) {
				n -= 1;
			} n % 26 == 0 n % 26 n 26 0 {
				n -= 1;
			} n -= 1 n 1 n /= 26 n 26 Collections.reverse(list) Collections.reverse Collections list Character[] name = list.toArray(new Character[list.size()]); name list.toArray(new Character[list.size()]) list.toArray list new Character[list.size()] list.size() list.size list char[] name2 = new char[list.size()]; name2 new char[list.size()] list.size() list.size list for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		} int i = 0; int i = 0; i 0 i < list.size() i list.size() list.size list i++ i++ i {
			name2[i] = (char)name[i];
		} {
			name2[i] = (char)name[i];
		} name2[i] = (char)name[i] name2[i] name2 i (char)name[i] name i String na = new String(name2); na new String(name2) System.out.println(na) System.out.println System.out System System.out na String[] args args public static char toS(int n) {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	} toS {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	} if(n == 0) {
			return 'z';
		} n == 0 n 0 {
			return 'z';
		} return 'z'; 'z' int a = 'a' - 1; a 'a' - 1 'a' 1 a = n + a a n + a n a return (char)a; (char)a int n n public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	}
	
	public static char toS(int n) {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	}
} public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	}
	
	public static char toS(int n) {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	}
} Main
import java.util.*;
public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		long n = scan.nextLong();
		ArrayList<Character> list = new ArrayList<Character>();
		while(n > 0) {
			int amari = (int) (n % 26);
			list.add(toS(amari));
			if(n % 26 == 0) {
				n -= 1;
			}
			n /= 26;
		}
		Collections.reverse(list);
		Character[] name = list.toArray(new Character[list.size()]);
		char[] name2 = new char[list.size()];
		for(int i = 0; i < list.size(); i++) {
			name2[i] = (char)name[i];
		}
		String na = new String(name2);
		System.out.println(na);
	}
	
	public static char toS(int n) {
		if(n == 0) {
			return 'z';
		}
		int a = 'a' - 1;
		a = n + a;
		return (char)a;
	}
}
