
import java.io.*;
import java.math.BigInteger;
import java.util.*;

/**
 * @author Tran Anh Tai
 * @template for CP codes
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    }
    // main solver
    static class Task{
        static int MOD = 1000000007;
        public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        }
    }
    // fast input reader class;
    static class InputReader {
        BufferedReader br;
        StringTokenizer st;

        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        }

        public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
        public long nextLong(){
            return Long.parseLong(nextToken());
        }
    }
} import java.io.*; io.* java import java.math.BigInteger; BigInteger java.math import java.util.*; util.* java public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    }
    // main solver
    static class Task{
        static int MOD = 1000000007;
        public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        }
    }
    // fast input reader class;
    static class InputReader {
        BufferedReader br;
        StringTokenizer st;

        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        }

        public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
        public long nextLong(){
            return Long.parseLong(nextToken());
        }
    }
} Main public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    } main {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    } InputStream inputStream = System.in; inputStream System.in System System.in OutputStream outputStream = System.out; outputStream System.out System System.out InputReader in = new InputReader(inputStream); in new InputReader(inputStream) PrintWriter out = new PrintWriter(outputStream); out new PrintWriter(outputStream) Task solver = new Task(); solver new Task() solver.solve(in, out) solver.solve solver in out out.close() out.close out String[] args args static class Task{
        static int MOD = 1000000007;
        public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        }
    } Task static int MOD = 1000000007; MOD 1000000007 public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        } solve {
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        } long n = in.nextLong(); n in.nextLong() in.nextLong in int d = 1; d 1 long cur =26; cur 26 long total = 26; total 26 while (total < n){
                cur *= 26;
                total += cur;
                d++;
            } total < n total n {
                cur *= 26;
                total += cur;
                d++;
            } cur *= 26 cur 26 total += cur total cur d++ d n -= total / 26 n total / 26 total 26 String r = ""; r "" for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            } int i = 0; int i = 0; i 0 i < d i d i++ i++ i {
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            } {
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            } int x = (int)(n % 26); x (int)(n % 26) n 26 n /= 26 n 26 r =  (char)(x +'a')+ r r (char)(x +'a')+ r (char)(x +'a') x 'a' r out.println(r) out.println out r InputReader in in PrintWriter out out static class InputReader {
        BufferedReader br;
        StringTokenizer st;

        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        }

        public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
        public long nextLong(){
            return Long.parseLong(nextToken());
        }
    } InputReader BufferedReader br; br StringTokenizer st; st public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        } InputReader {
            br = new BufferedReader(new InputStreamReader(stream));
        } br = new BufferedReader(new InputStreamReader(stream)) br new BufferedReader(new InputStreamReader(stream)) InputStream stream stream public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        } nextToken {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        } while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            } st == null || !st.hasMoreTokens() st == null st null !st.hasMoreTokens() st.hasMoreTokens() st.hasMoreTokens st {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            } String line = null; line null try {
                    line = br.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) {
                    line = br.readLine();
                } line = br.readLine() line br.readLine() br.readLine br if (line == null) {
                    return null;
                } line == null line null {
                    return null;
                } return null; null st = new StringTokenizer(line) st new StringTokenizer(line) return st.nextToken(); st.nextToken() st.nextToken st public int nextInt() {
            return Integer.parseInt(nextToken());
        } nextInt {
            return Integer.parseInt(nextToken());
        } return Integer.parseInt(nextToken()); Integer.parseInt(nextToken()) Integer.parseInt Integer nextToken() nextToken public long nextLong(){
            return Long.parseLong(nextToken());
        } nextLong {
            return Long.parseLong(nextToken());
        } return Long.parseLong(nextToken()); Long.parseLong(nextToken()) Long.parseLong Long nextToken() nextToken public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    }
    // main solver
    static class Task{
        static int MOD = 1000000007;
        public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        }
    }
    // fast input reader class;
    static class InputReader {
        BufferedReader br;
        StringTokenizer st;

        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        }

        public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
        public long nextLong(){
            return Long.parseLong(nextToken());
        }
    }
} public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    }
    // main solver
    static class Task{
        static int MOD = 1000000007;
        public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        }
    }
    // fast input reader class;
    static class InputReader {
        BufferedReader br;
        StringTokenizer st;

        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        }

        public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
        public long nextLong(){
            return Long.parseLong(nextToken());
        }
    }
} Main

import java.io.*;
import java.math.BigInteger;
import java.util.*;

/**
 * @author Tran Anh Tai
 * @template for CP codes
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        Task solver = new Task();
        solver.solve(in, out);
        out.close();
    }
    // main solver
    static class Task{
        static int MOD = 1000000007;
        public void solve(InputReader in, PrintWriter out){
            long n = in.nextLong();
            int d = 1;
            long cur =26;
            long total = 26;
            while (total < n){
                cur *= 26;
                total += cur;
                d++;
            }
            n -= total / 26;
            String r = "";
            for (int i = 0; i < d; i++){
                int x = (int)(n % 26);
                n /= 26;
                r =  (char)(x +'a')+ r;
            }
            out.println(r);
        }
    }
    // fast input reader class;
    static class InputReader {
        BufferedReader br;
        StringTokenizer st;

        public InputReader(InputStream stream) {
            br = new BufferedReader(new InputStreamReader(stream));
        }

        public String nextToken() {
            while (st == null || !st.hasMoreTokens()) {
                String line = null;
                try {
                    line = br.readLine();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                if (line == null) {
                    return null;
                }
                st = new StringTokenizer(line);
            }
            return st.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(nextToken());
        }
        public long nextLong(){
            return Long.parseLong(nextToken());
        }
    }
}