import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	}

} import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	}

} Main public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	} main {
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	} try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		} {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		} Scanner sc = new Scanner(System.in) Scanner sc = new Scanner(System.in) new Scanner(System.in) long n = sc.nextLong(); n sc.nextLong() sc.nextLong sc List<String> initials = new ArrayList<>(); initials new ArrayList<>() long current = n; current n while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			} current > 0 current 0 {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			} current-- current long residual = current % 26; residual current % 26 current 26 current = (current - residual) / 26 current (current - residual) / 26 (current - residual) current residual 26 char initial = (char) ('a' + residual); initial (char) ('a' + residual) 'a' residual String initStr = String.valueOf(initial); initStr String.valueOf(initial) String.valueOf String initial initials.add(initStr) initials.add initials initStr Collections.reverse(initials) Collections.reverse Collections initials StringBuilder sb = new StringBuilder(); sb new StringBuilder() for(String s : initials) {
				sb.append(s);
			} String s initials {
				sb.append(s);
			} {
				sb.append(s);
			} sb.append(s) sb.append sb s System.out.println(sb.toString()) System.out.println System.out System System.out sb.toString() sb.toString sb String[] args args public class Main {
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	}

} public class Main {
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	}

} Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		try(Scanner sc = new Scanner(System.in)) {
			
			long n = sc.nextLong();
			
			List<String> initials = new ArrayList<>();
			
			long current = n;
			
			while(current > 0) {
				
				current--;
				
				long residual = current % 26;
				current = (current - residual) / 26;
				
				char initial = (char) ('a' + residual);				
				String initStr = String.valueOf(initial);
				
				initials.add(initStr);
				
			}
			
			Collections.reverse(initials);
			StringBuilder sb = new StringBuilder();
			for(String s : initials) {
				sb.append(s);
			}
			
			System.out.println(sb.toString());
		}
	}

}