import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;
public class Main {
	public static void main(String[] args)throws IOException {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	}

}





class FastReader {
	BufferedReader br;
	StringTokenizer st;

	public FastReader() {
		br = new BufferedReader(new
		                        InputStreamReader(System.in));
	}

	String next() {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	}

	int nextInt() {
		return Integer.parseInt(next());
	}

	long nextLong() {
		return Long.parseLong(next());
	}

	double nextDouble() {
		return Double.parseDouble(next());
	}

	String nextLine() {
		String str = "";
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.*; util.* java public class Main {
	public static void main(String[] args)throws IOException {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	}

} Main public static void main(String[] args)throws IOException {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	} main {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	} FastReader sc = new FastReader(); sc new FastReader() PrintWriter pw = new PrintWriter(System.out); pw new PrintWriter(System.out) String str = "abcdefghijklmnopqrstuvwxyz"; str "abcdefghijklmnopqrstuvwxyz" long n = sc.nextLong(); n sc.nextLong() sc.nextLong sc String ans = ""; ans "" if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		} n <= 26 n 26 {
			System.out.println(str.charAt((int)n - 1));
			return;
		} System.out.println(str.charAt((int)n - 1)) System.out.println System.out System System.out str.charAt((int)n - 1) str.charAt str (int)n - 1 (int)n 1 return; while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		} n > 0 n 0 {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		} long tmp = n % 26; tmp n % 26 n 26 if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1); tmp > 0 tmp 0 ans = ans + str.charAt((int)tmp - 1) ans ans + str.charAt((int)tmp - 1) ans str.charAt((int)tmp - 1) str.charAt str (int)tmp - 1 (int)tmp 1 if (tmp == 0)
				ans = ans + str.charAt(25); tmp == 0 tmp 0 ans = ans + str.charAt(25) ans ans + str.charAt(25) ans str.charAt(25) str.charAt str 25 n = n - tmp n n - tmp n tmp n = n / 26 n n / 26 n 26 if (tmp == 0)
				n--; tmp == 0 tmp 0 n-- n System.out.println(new StringBuilder(ans).reverse()) System.out.println System.out System System.out new StringBuilder(ans).reverse() new StringBuilder(ans).reverse new StringBuilder(ans) String[] args args class FastReader {
	BufferedReader br;
	StringTokenizer st;

	public FastReader() {
		br = new BufferedReader(new
		                        InputStreamReader(System.in));
	}

	String next() {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	}

	int nextInt() {
		return Integer.parseInt(next());
	}

	long nextLong() {
		return Long.parseLong(next());
	}

	double nextDouble() {
		return Double.parseDouble(next());
	}

	String nextLine() {
		String str = "";
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}
} FastReader BufferedReader br; br StringTokenizer st; st public FastReader() {
		br = new BufferedReader(new
		                        InputStreamReader(System.in));
	} FastReader {
		br = new BufferedReader(new
		                        InputStreamReader(System.in));
	} br = new BufferedReader(new
		                        InputStreamReader(System.in)) br new BufferedReader(new
		                        InputStreamReader(System.in)) String next() {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	} next {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	} while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		} st == null || !st.hasMoreElements() st == null st null !st.hasMoreElements() st.hasMoreElements() st.hasMoreElements st {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		} try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			} catch (IOException  e) {
				e.printStackTrace();
			} IOException  e {
				e.printStackTrace();
			} e.printStackTrace() e.printStackTrace e {
				st = new StringTokenizer(br.readLine());
			} st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st int nextInt() {
		return Integer.parseInt(next());
	} nextInt {
		return Integer.parseInt(next());
	} return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next long nextLong() {
		return Long.parseLong(next());
	} nextLong {
		return Long.parseLong(next());
	} return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next double nextDouble() {
		return Double.parseDouble(next());
	} nextDouble {
		return Double.parseDouble(next());
	} return Double.parseDouble(next()); Double.parseDouble(next()) Double.parseDouble Double next() next String nextLine() {
		String str = "";
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	} nextLine {
		String str = "";
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	} String str = ""; str "" try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} IOException e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			str = br.readLine();
		} str = br.readLine() str br.readLine() br.readLine br return str; str public class Main {
	public static void main(String[] args)throws IOException {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	}

} public class Main {
	public static void main(String[] args)throws IOException {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	}

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;
public class Main {
	public static void main(String[] args)throws IOException {
		FastReader sc = new FastReader();
		PrintWriter pw = new PrintWriter(System.out);
		String str = "abcdefghijklmnopqrstuvwxyz";
		long n = sc.nextLong();
		String ans = "";
		if (n <= 26) {
			System.out.println(str.charAt((int)n - 1));
			return;
		}
		while (n > 0) {
			long tmp = n % 26;
			if (tmp > 0)
				ans = ans + str.charAt((int)tmp - 1);
			if (tmp == 0)
				ans = ans + str.charAt(25);
			n = n - tmp;
			n = n / 26;
			if (tmp == 0)
				n--;


		}
		System.out.println(new StringBuilder(ans).reverse());

	}

}





class FastReader {
	BufferedReader br;
	StringTokenizer st;

	public FastReader() {
		br = new BufferedReader(new
		                        InputStreamReader(System.in));
	}

	String next() {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (IOException  e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	}

	int nextInt() {
		return Integer.parseInt(next());
	}

	long nextLong() {
		return Long.parseLong(next());
	}

	double nextDouble() {
		return Double.parseDouble(next());
	}

	String nextLine() {
		String str = "";
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}
}