import java.util.*;
import java.math.*;

public class Main {
    static final int MOD = 1_000_000_007; // 10^9+7
    // static final int MAX = 2_147_483_646; // intの最大値
    static final int INF = 1_000_000_000; // 10^9
    static final int MAX = 10_000_000;
    static long[] fact = new long[100];
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    }
}

 import java.util.*; util.* java import java.math.*; math.* java public class Main {
    static final int MOD = 1_000_000_007; // 10^9+7
    // static final int MAX = 2_147_483_646; // intの最大値
    static final int INF = 1_000_000_000; // 10^9
    static final int MAX = 10_000_000;
    static long[] fact = new long[100];
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    }
} Main static final int MOD = 1_000_000_007; // 10^9+7 MOD 1_000_000_007 // static final int MAX = 2_147_483_646; // intの最大値
    static final int INF = 1_000_000_000; // 10^9 INF 1_000_000_000 static final int MAX = 10_000_000; MAX 10_000_000 static long[] fact = new long[100]; fact new long[100] 100 public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    } main {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) long n = sc.nextLong()-1; n sc.nextLong()-1 sc.nextLong() sc.nextLong sc 1 String ans = String.valueOf((char)('a'+n%26)); ans String.valueOf((char)('a'+n%26)) String.valueOf String (char)('a'+n%26) 'a' n%26 n 26 while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        } true {
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        } n/=26 n 26 if(n==0)break; n==0 n 0 break; n-- n char ansc = (char)('a'+n%26); ansc (char)('a'+n%26) 'a' n%26 n 26 ans = ansc + ans ans ansc + ans ansc ans if(n==0)break; n==0 n 0 break; System.out.println(ans) System.out.println System.out System System.out ans String args[] args public class Main {
    static final int MOD = 1_000_000_007; // 10^9+7
    // static final int MAX = 2_147_483_646; // intの最大値
    static final int INF = 1_000_000_000; // 10^9
    static final int MAX = 10_000_000;
    static long[] fact = new long[100];
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    }
} public class Main {
    static final int MOD = 1_000_000_007; // 10^9+7
    // static final int MAX = 2_147_483_646; // intの最大値
    static final int INF = 1_000_000_000; // 10^9
    static final int MAX = 10_000_000;
    static long[] fact = new long[100];
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    }
} Main
import java.util.*;
import java.math.*;

public class Main {
    static final int MOD = 1_000_000_007; // 10^9+7
    // static final int MAX = 2_147_483_646; // intの最大値
    static final int INF = 1_000_000_000; // 10^9
    static final int MAX = 10_000_000;
    static long[] fact = new long[100];
    public static void main(String args[]) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong()-1;
        
        String ans = String.valueOf((char)('a'+n%26));

        while(true){
            n/=26;
            if(n==0)break;
            n--;
            char ansc = (char)('a'+n%26);
            ans = ansc + ans;
            //System.out.println(ans);
            if(n==0)break;
        }
        System.out.println(ans);
    }
}


