import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	}

	private static class FastScanner {
		private BufferedReader reader = null;
		private StringTokenizer tokenizer = null;

		public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		}

		public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

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

		public long nextLong() {
			return Long.parseLong(next());
		}
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.StringTokenizer; StringTokenizer java.util public class Main {

	public static void main(String[] args) {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	}

	private static class FastScanner {
		private BufferedReader reader = null;
		private StringTokenizer tokenizer = null;

		public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		}

		public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

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

		public long nextLong() {
			return Long.parseLong(next());
		}
	}
} Main public static void main(String[] args) {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	} main {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	} FastScanner sc = new FastScanner(System.in); sc new FastScanner(System.in) long N = sc.nextLong(); N sc.nextLong() sc.nextLong sc String anser = ""; anser "" while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		} true {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		} N-- N anser = (char)(N % 26 + 'a') + anser anser (char)(N % 26 + 'a') + anser (char)(N % 26 + 'a') N % 26 N 26 'a' anser N = N / 26 N N / 26 N 26 if (N == 0) {
				break;
			} N == 0 N 0 {
				break;
			} break; System.out.println(anser) System.out.println System.out System System.out anser String[] args args private static class FastScanner {
		private BufferedReader reader = null;
		private StringTokenizer tokenizer = null;

		public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		}

		public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

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

		public long nextLong() {
			return Long.parseLong(next());
		}
	} FastScanner private BufferedReader reader = null; reader null private StringTokenizer tokenizer = null; tokenizer null public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		} FastScanner {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		} reader = new BufferedReader(new InputStreamReader(in)) reader new BufferedReader(new InputStreamReader(in)) tokenizer = null tokenizer null InputStream in in public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		} next {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		} if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			} tokenizer == null || !tokenizer.hasMoreTokens() tokenizer == null tokenizer null !tokenizer.hasMoreTokens() tokenizer.hasMoreTokens() tokenizer.hasMoreTokens tokenizer {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			} try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				} catch (IOException e) {
					throw new RuntimeException(e);
				} IOException e {
					throw new RuntimeException(e);
				} throw new RuntimeException(e); new RuntimeException(e) {
					tokenizer = new StringTokenizer(reader.readLine());
				} tokenizer = new StringTokenizer(reader.readLine()) tokenizer new StringTokenizer(reader.readLine()) return tokenizer.nextToken(); tokenizer.nextToken() tokenizer.nextToken tokenizer public long nextLong() {
			return Long.parseLong(next());
		} nextLong {
			return Long.parseLong(next());
		} return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next public class Main {

	public static void main(String[] args) {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	}

	private static class FastScanner {
		private BufferedReader reader = null;
		private StringTokenizer tokenizer = null;

		public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		}

		public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

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

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

	public static void main(String[] args) {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	}

	private static class FastScanner {
		private BufferedReader reader = null;
		private StringTokenizer tokenizer = null;

		public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		}

		public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

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

		public long nextLong() {
			return Long.parseLong(next());
		}
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) {
		FastScanner sc = new FastScanner(System.in);

		long N = sc.nextLong();
		String anser = "";
		while (true) {
			N--;
			anser = (char)(N % 26 + 'a') + anser;
			N = N / 26;
			if (N == 0) {
				break;
			}
		}
		System.out.println(anser);
	}

	private static class FastScanner {
		private BufferedReader reader = null;
		private StringTokenizer tokenizer = null;

		public FastScanner(InputStream in) {
			reader = new BufferedReader(new InputStreamReader(in));
			tokenizer = null;
		}

		public String next() {
			if (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		}

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

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