import java.io.InputStream;
import java.io.OutputStream;
import java.util.*;
import java.io.PrintWriter;
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;

public class Main{
	//WRWWRWRR     wwwrrrrwwwwrrr
	///112 112
	///1223 12
	public void solve(int testNumber, InputReader in, PrintWriter out) {

	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	}
//	public static void main(String[] args){
//        InputStream inputStream = System.in;
//        OutputStream outputStream = System.out;
//        InputReader in = new InputReader(inputStream);
//        PrintWriter out = new PrintWriter(outputStream);
//        Main solver = new Main();
////        int num = in.nextInt();
////        while(num-->0){
////            solver.solve(1, in, out);
////        }
//        solver.solve(1, in, out);
//        out.close();
//    }
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (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());
		}

	}
} import java.io.InputStream; InputStream java.io import java.io.OutputStream; OutputStream java.io import java.util.*; util.* java import java.io.PrintWriter; PrintWriter java.io import java.io.OutputStream; OutputStream java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.PrintWriter; PrintWriter java.io import java.io.IOException; IOException java.io import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.InputStream; InputStream java.io import java.io.OutputStream; OutputStream java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringTokenizer; StringTokenizer java.util import java.io.IOException; IOException java.io import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.InputStream; InputStream java.io public class Main{
	//WRWWRWRR     wwwrrrrwwwwrrr
	///112 112
	///1223 12
	public void solve(int testNumber, InputReader in, PrintWriter out) {

	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	}
//	public static void main(String[] args){
//        InputStream inputStream = System.in;
//        OutputStream outputStream = System.out;
//        InputReader in = new InputReader(inputStream);
//        PrintWriter out = new PrintWriter(outputStream);
//        Main solver = new Main();
////        int num = in.nextInt();
////        while(num-->0){
////            solver.solve(1, in, out);
////        }
//        solver.solve(1, in, out);
//        out.close();
//    }
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (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());
		}

	}
} Main //WRWWRWRR     wwwrrrrwwwwrrr
	///112 112
	///1223 12
	public void solve(int testNumber, InputReader in, PrintWriter out) {

	} solve {

	} int testNumber testNumber InputReader in in PrintWriter out out public static void main(String[] args){
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	} main {
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	} Scanner scanner = new Scanner(new InputStreamReader(System.in)); scanner new Scanner(new InputStreamReader(System.in)) long n = Long.parseLong(scanner.nextLine()); n Long.parseLong(scanner.nextLine()) Long.parseLong Long scanner.nextLine() scanner.nextLine scanner n-- n long max = (long)1e18+1; max (long)1e18+1 (long)1e18 1 List<Long> res = new ArrayList<>(); res new ArrayList<>() long aka = 0; aka 0 long[] arr = new long[20]; arr new long[20] 20 arr[0] = 1 arr[0] arr 0 1 for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		} int i=1; int i=1; i 1 i<20 i 20 i++ i++ i {
			arr[i] = arr[i-1]*26;
		} {
			arr[i] = arr[i-1]*26;
		} arr[i] = arr[i-1]*26 arr[i] arr i arr[i-1]*26 arr[i-1] arr i-1 i 1 26 long sum = 0; sum 0 for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		} int i=1; int i=1; i 1 i<20 i 20 i++ i++ i {
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		} {
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		} sum+=arr[i] sum arr[i] arr i if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			} n<sum n sum {
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			} int len = i; len i StringBuilder sb = new StringBuilder(); sb new StringBuilder() n-=(sum-arr[i]) n (sum-arr[i]) sum arr[i] arr i for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				} int j=0; int j=0; j 0 j<len j len j++ j++ j {
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				} {
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				} int idx = (int) (n/arr[len-j-1]); idx (int) (n/arr[len-j-1]) n arr[len-j-1] arr len-j-1 len-j-1 len j 1 sb.append((char)(idx+'a')) sb.append sb (char)(idx+'a') idx 'a' n-=arr[len-j-1]*idx n arr[len-j-1]*idx arr[len-j-1] arr len-j-1 len-j-1 len j 1 idx System.out.println(sb.toString()) System.out.println System.out System System.out sb.toString() sb.toString sb return ; String[] args args 	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (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());
		}

	} InputReader public BufferedReader reader; reader public StringTokenizer tokenizer; tokenizer public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		} InputReader {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		} reader = new BufferedReader(new InputStreamReader(stream), 32768) reader new BufferedReader(new InputStreamReader(stream), 32768) tokenizer = null tokenizer null InputStream stream stream public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		} next {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					tokenizer = new StringTokenizer(reader.readLine());
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			return tokenizer.nextToken();
		} while (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 int nextInt() {
			return Integer.parseInt(next());
		} nextInt {
			return Integer.parseInt(next());
		} return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next public class Main{
	//WRWWRWRR     wwwrrrrwwwwrrr
	///112 112
	///1223 12
	public void solve(int testNumber, InputReader in, PrintWriter out) {

	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	}
//	public static void main(String[] args){
//        InputStream inputStream = System.in;
//        OutputStream outputStream = System.out;
//        InputReader in = new InputReader(inputStream);
//        PrintWriter out = new PrintWriter(outputStream);
//        Main solver = new Main();
////        int num = in.nextInt();
////        while(num-->0){
////            solver.solve(1, in, out);
////        }
//        solver.solve(1, in, out);
//        out.close();
//    }
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (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 class Main{
	//WRWWRWRR     wwwrrrrwwwwrrr
	///112 112
	///1223 12
	public void solve(int testNumber, InputReader in, PrintWriter out) {

	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	}
//	public static void main(String[] args){
//        InputStream inputStream = System.in;
//        OutputStream outputStream = System.out;
//        InputReader in = new InputReader(inputStream);
//        PrintWriter out = new PrintWriter(outputStream);
//        Main solver = new Main();
////        int num = in.nextInt();
////        while(num-->0){
////            solver.solve(1, in, out);
////        }
//        solver.solve(1, in, out);
//        out.close();
//    }
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (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());
		}

	}
} Main
import java.io.InputStream;
import java.io.OutputStream;
import java.util.*;
import java.io.PrintWriter;
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.InputStream;

public class Main{
	//WRWWRWRR     wwwrrrrwwwwrrr
	///112 112
	///1223 12
	public void solve(int testNumber, InputReader in, PrintWriter out) {

	}
	public static void main(String[] args){
		Scanner scanner = new Scanner(new InputStreamReader(System.in));
		long n = Long.parseLong(scanner.nextLine());
		n--;
		long max = (long)1e18+1;
		List<Long> res = new ArrayList<>();
		long aka = 0;
		long[] arr = new long[20];
		arr[0] = 1;
		for(int i=1;i<20;i++){
			arr[i] = arr[i-1]*26;
		}
		long sum = 0;
		for(int i=1;i<20;i++){
			sum+=arr[i];
			if(n<sum){
				int len = i;
				StringBuilder sb = new StringBuilder();
				n-=(sum-arr[i]);
				for(int j=0;j<len;j++){
					int idx = (int) (n/arr[len-j-1]);
					//System.out.println(n+" "+arr[len-j-1]);
					sb.append((char)(idx+'a'));
					n-=arr[len-j-1]*idx;
				}
				System.out.println(sb.toString());
				return ;
			}
		}
	}
//	public static void main(String[] args){
//        InputStream inputStream = System.in;
//        OutputStream outputStream = System.out;
//        InputReader in = new InputReader(inputStream);
//        PrintWriter out = new PrintWriter(outputStream);
//        Main solver = new Main();
////        int num = in.nextInt();
////        while(num-->0){
////            solver.solve(1, in, out);
////        }
//        solver.solve(1, in, out);
//        out.close();
//    }
	static class InputReader {
		public BufferedReader reader;
		public StringTokenizer tokenizer;

		public InputReader(InputStream stream) {
			reader = new BufferedReader(new InputStreamReader(stream), 32768);
			tokenizer = null;
		}

		public String next() {
			while (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());
		}

	}
}
