import java.util.*;
import java.util.function.*;
import java.math.*;
public class Main {
    public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	}
} import java.util.*; util.* java import java.util.function.*; function.* java.util import java.math.*; math.* java public class Main {
    public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	}
} Main public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	} main {
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	} Scanner s = new Scanner(System.in); s new Scanner(System.in) long N = Long.valueOf(s.next()); N Long.valueOf(s.next()) Long.valueOf Long s.next() s.next s char[] ret; ret int keta = 0; keta 0 long now = 1; now 1 while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		} true {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		} now *= 26 now 26 keta++ keta if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			} N <= now N now {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			} ret = new char[keta] ret new char[keta] keta N-- N for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				} int i = 0; int i = 0; i 0 i < keta i keta i++ i++ i {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				} {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				} ret[keta-i-1] = (char)(N%26 + 'a') ret[keta-i-1] ret keta-i-1 keta-i-1 keta i 1 (char)(N%26 + 'a') N%26 N 26 'a' N /= 26 N 26 break; {
				N -= now;
			} N -= now N now System.out.println(new String(ret)) System.out.println System.out System System.out new String(ret) String[] args args public class Main {
    public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	}
} public class Main {
    public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	}
} Main
import java.util.*;
import java.util.function.*;
import java.math.*;
public class Main {
    public static void main(String[] args){
		Scanner s = new Scanner(System.in);
		long N = Long.valueOf(s.next());
		
		char[] ret;
		
		int keta = 0;
		long now = 1;
		while(true) {
			now *= 26;
			keta++;
			if(N <= now) {
				ret = new char[keta];
				N--;
				for(int i = 0; i < keta; i++) {
					ret[keta-i-1] = (char)(N%26 + 'a');
					N /= 26;
				}
				break;
			}else {
				N -= now;
			}
		}
		System.out.println(new String(ret));
	}
}