stablegradients/pie-gem5-pairs huggingface dataset:
// Slower C++ solution:
#include <cstdio>

#include <cstring>

#include <string>

#include <algorithm>

using namespace std; 

typedef long long LL;

const int MAXN=1E5+10;

int q[MAXN],tong[MAXN],a[MAXN];

long long sumans;

string name(LL N) {

	N-=1;

	LL pw=26,i=1;

	while(N>=pw) {

		N-=pw;

		pw*=26;

		++i;

	}

//	printf("%lld %lld %lld\n",N,pw,i);

	string names="";

	while(N>0) {

		LL r=N%26;

		names=char(r+'a')+names;

		N/=26;

	}

	int x=names.length();

	if(x!=i) {

		names=string(i-x,'a')+names;

	}

	return names;

}

int main() {

	LL N;

	scanf("%lld",&N);

	printf("%s",name(N).c_str());

	return 0;

} 

// Faster C++ solution for the same problem (measured speedup: 4.934069915698087x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

string s="";

int main(){



    ios::sync_with_stdio(false);

    cin.tie(0);



    long long n;

    cin>>n;

    while(n--){

        s=char(n%26+'a')+s;

        n/=26;

    }



    cout<<s;

}


// Faster C++ solution for the same problem (measured speedup: 5.384728214888843x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

#define lowbit(i) ((i)&(-i))

#define ls (p << 1)

#define rs (p << 1 | 1)

using namespace std;



typedef unsigned long long ull;

typedef long long ll;

typedef pair <int, int> pii;

typedef pair <ll, ll> pll;



const double pi = acos(-1.0);

const int INF = 0x3f3f3f3f;

const int MAXN = 26 + 15;

int main() {

#ifdef CitricAcid

    freopen ("input.txt", "rt", stdin);

#endif



    ll n;

    scanf("%lld", &n);

    string ans;



    while(n > 0) {

        n--;

        ans += (n % 26) + 'a';

        n /= 26;

    }

    reverse(ans.begin(), ans.end());

    cout << ans << endl;





#ifdef CitricAcid

    cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";

#endif

    return 0;

}

/*

# author : CitricAcid

# date : 2020/07/27

*/

// Faster C++ solution for the same problem (measured speedup: 5.277259410513764x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>



using namespace std;



int main()

{

unsigned long long int n;

cin>>n;

--n;

string s="";

while(n >= 26) {

    s+=char((n%26) + 'a');

    n/=26;

   --n;

}

s+=char(n+'a');

reverse(s.begin(),s.end());

cout<<s;

return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.301578252101x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

int main(){

  long long n;

  list <char> s; 

  cin>>n;

  while(n){

    n--;

    s.push_front('a'+n%26);

    n/=26;

  }

  string ss(s.begin(), s.end());

  cout<<ss<<endl;

  return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.331023099322484x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



int main() {

   long long n ;

   cin>>n;

   long long x;

   string S[] ={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};

   vector<string>v;

   while(n != 0){

        x = (n % 26) -1;

        if(x == -1){

            x = 25;

            n--;

        }

       v.push_back( S[x]);

       n /= 26;

   }

 for(reverse_iterator<vector<basic_string<char>>::iterator> it = v.rbegin(); it != v.rend(); it++){

     cout<<*it;

 }

 cout<<endl;



return 0;



}


// Faster C++ solution for the same problem (measured speedup: 5.342965692363766x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include <iostream>

#include <algorithm>

#include <cstring>

#include <string>

#include <cmath>

#include <set>

#include <unordered_set>

#include <vector>

#include<valarray>

#include<map>

#include <utility>

#include <deque>

#include <queue>

using namespace std;



int main()

{

unsigned long long int n;

char c;

string s;

cin>>n;

long long counter=0;

while (n>=26)

{





    if(n%26!=0)

    {

        counter++;

        n--;

    }

     else if(n%26==0&&counter==0)

    {

         s+='z';

         n-=1;

         n/=26;



    }

    else if(n%26==0)

    {





        c =(96+counter);







        s+=c;

        counter=0;

        n/=26;

    }



}



if(n==26)

    s+='a';

else if(n>=1&&n<26) {





    c = (96 + n);

    s += c;

}

reverse(s.begin(),s.end());



cout<<s;





    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.303044476292726x):
#include <stdio.h>

#include <string.h>



int main(){

	char a[100];

	long long N, hb, sisa;

	scanf("%lld", &N);

	int j=0;

	while(1){

		hb=N/26;

		sisa=N%26;

		if(sisa==0){

			a[j]='z';

			hb-=1;

		}

		if(sisa!=0){

			a[j]=sisa-1+'a';

		}

		j++;

		if(hb==0){

			break;

		}

		N=hb;

	}

	a[j] = '\0';

	int len = strlen(a);

	for(int i=len-1; i>=0; i--){

		printf("%c", a[i]);

	}

	printf("\n");

	

	return 0;

}
// Slower C++ solution:
#include<bits/stdc++.h>



using namespace std;



void f(long long n){

    n-=1;

    if(n<26){

        cout <<(char)('a' + n);

        return;

    }



    f(n/26);

    cout <<(char)('a' + n%26);

}



int main(){

    long long n;

    cin >>n;

    f(n);

}


// Faster C++ solution for the same problem (measured speedup: 5.271392030972614x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include<iostream>

using namespace std;



int main(){



    long long n;

    cin >> n;



    /*int len = 0;

    long long sum = 0, p = 1;

    for(int i=1;;i++){

        p*=26;

        sum+=p;

        if(n<=sum){

            len = i;

            break;

        }

    }

    cout << len << endl;*/



    string name = "";

    long long d = 0, r = 0;

    while(n>0){

        d = n/26;

        r = n%26;

        if(r==0){

            d = d-1;

            name = "z" + name;

        }

        else{

            name = (char)(r-1+'a') + name;

        }

        n = d;

    }



    cout << name << endl;

}


// Faster C++ solution for the same problem (measured speedup: 5.341514430367451x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
//problem - p(indu)

#include<iostream>

#include<cmath>

#include<cstdio>



int main()

{

    long long int num{0};

    int remain{0},count{0};

    char s[20] = {0};

    

    scanf("%lli",&num);

    

    while(num > 0){

        remain = num % 26;

        

        if(remain == 0){

            s[count] = 26;

        }else{

            s[count] = remain;

        }

        

        num -= 1;

        num /= 26;

        count++;

    }

    

    while(--count >= 0){

        printf("%c",s[count] + 'a' - 1);

    }

    

    printf("\n");

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.228522361932197x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



typedef long long ll;



string solve(ll n)

{

    ll x = 26;

    int cnt = 1;

    while (n > x)

    {

        n -= x;

        x = x * 26;

        cnt ++;

    }



    n -= 1;

    string ans = "";

    while (n)

    {

        ans = (char)('a' + (n % 26ll)) + ans;

        n /= 26;

    }

    // cout << ans << endl;

    // cout << (cnt - ans.length()) << endl;

    int len = cnt - ans.length();

    for (int i = 0; i < len; i ++)

        ans = 'a' + ans;

    return ans;

    

}



int main()

{

    ll n;

    cin >> n;

    cout << solve(n) << endl;

    // n --;

    // if (n == 0)

    // {

    //     cout << 'a' << endl;

    //     return 0;

    // }

    // string ans;

    // while (n)

    // {



    //     ans = (char)('a' + (n % 26ll)) + ans;

    //     n /= 26;

    // }

    // cout << ans << endl;

    

}

// Faster C++ solution for the same problem (measured speedup: 5.342798173177243x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <cstdio>

#include <cstring>

#include <string>

#include <algorithm>

using namespace std; 

typedef long long LL;

const int MAXN=1E5+10;

int q[MAXN],tong[MAXN],a[MAXN];

long long sumans;

string name(LL N) {

	N-=1;

	LL pw=26,i=1;

	while(N>=pw) {

		N-=pw;

		pw*=26;

		++i;

	}

//	printf("%lld %lld %lld\n",N,pw,i);

	string names="";

	while(N>0) {

		LL r=N%26;

		names=char(r+'a')+names;

		N/=26;

	}

	int x=names.length();

	if(x!=i) {

		names=string(i-x,'a')+names;

	}

	return names;

}

int main() {

	LL N;

	scanf("%lld",&N);

	printf("%s",name(N).c_str());

	return 0;

} 

// Faster C++ solution for the same problem (measured speedup: 4.942891975224978x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

string s="";

int main(){



    ios::sync_with_stdio(false);

    cin.tie(0);



    long long n;

    cin>>n;

    while(n--){

        s=char(n%26+'a')+s;

        n/=26;

    }



    cout<<s;

}


// Faster C++ solution for the same problem (measured speedup: 5.394356046204474x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <bits/stdc++.h>

#define lowbit(i) ((i)&(-i))

#define ls (p << 1)

#define rs (p << 1 | 1)

using namespace std;



typedef unsigned long long ull;

typedef long long ll;

typedef pair <int, int> pii;

typedef pair <ll, ll> pll;



const double pi = acos(-1.0);

const int INF = 0x3f3f3f3f;

const int MAXN = 26 + 15;

int main() {

#ifdef CitricAcid

    freopen ("input.txt", "rt", stdin);

#endif



    ll n;

    scanf("%lld", &n);

    string ans;



    while(n > 0) {

        n--;

        ans += (n % 26) + 'a';

        n /= 26;

    }

    reverse(ans.begin(), ans.end());

    cout << ans << endl;





#ifdef CitricAcid

    cerr << "\nTime elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";

#endif

    return 0;

}

/*

# author : CitricAcid

# date : 2020/07/27

*/

// Faster C++ solution for the same problem (measured speedup: 5.2866950888591955x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <bits/stdc++.h>



using namespace std;



int main()

{

unsigned long long int n;

cin>>n;

--n;

string s="";

while(n >= 26) {

    s+=char((n%26) + 'a');

    n/=26;

   --n;

}

s+=char(n+'a');

reverse(s.begin(),s.end());

cout<<s;

return 0;

}


// Faster C++ solution for the same problem (measured speedup: 5.311057412251872x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;

int main(){

  long long n;

  list <char> s; 

  cin>>n;

  while(n){

    n--;

    s.push_front('a'+n%26);

    n/=26;

  }

  string ss(s.begin(), s.end());

  cout<<ss<<endl;

  return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.340554906517152x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



int main() {

   long long n ;

   cin>>n;

   long long x;

   string S[] ={"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};

   vector<string>v;

   while(n != 0){

        x = (n % 26) -1;

        if(x == -1){

            x = 25;

            n--;

        }

       v.push_back( S[x]);

       n /= 26;

   }

 for(reverse_iterator<vector<basic_string<char>>::iterator> it = v.rbegin(); it != v.rend(); it++){

     cout<<*it;

 }

 cout<<endl;



return 0;



}


// Faster C++ solution for the same problem (measured speedup: 5.35251885277566x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <iostream>

#include <algorithm>

#include <cstring>

#include <string>

#include <cmath>

#include <set>

#include <unordered_set>

#include <vector>

#include<valarray>

#include<map>

#include <utility>

#include <deque>

#include <queue>

using namespace std;



int main()

{

unsigned long long int n;

char c;

string s;

cin>>n;

long long counter=0;

while (n>=26)

{





    if(n%26!=0)

    {

        counter++;

        n--;

    }

     else if(n%26==0&&counter==0)

    {

         s+='z';

         n-=1;

         n/=26;



    }

    else if(n%26==0)

    {





        c =(96+counter);







        s+=c;

        counter=0;

        n/=26;

    }



}



if(n==26)

    s+='a';

else if(n>=1&&n<26) {





    c = (96 + n);

    s += c;

}

reverse(s.begin(),s.end());



cout<<s;





    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.312526258035371x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[255] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include<bits/stdc++.h>



using namespace std;



void f(long long n){

    n-=1;

    if(n<26){

        cout <<(char)('a' + n);

        return;

    }



    f(n/26);

    cout <<(char)('a' + n%26);

}



int main(){

    long long n;

    cin >>n;

    f(n);

}


// Faster C++ solution for the same problem (measured speedup: 5.263018530666268x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[26] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include<iostream>

using namespace std;



int main(){



    long long n;

    cin >> n;



    /*int len = 0;

    long long sum = 0, p = 1;

    for(int i=1;;i++){

        p*=26;

        sum+=p;

        if(n<=sum){

            len = i;

            break;

        }

    }

    cout << len << endl;*/



    string name = "";

    long long d = 0, r = 0;

    while(n>0){

        d = n/26;

        r = n%26;

        if(r==0){

            d = d-1;

            name = "z" + name;

        }

        else{

            name = (char)(r-1+'a') + name;

        }

        n = d;

    }



    cout << name << endl;

}


// Faster C++ solution for the same problem (measured speedup: 5.333029542038859x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[26] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
//problem - p(indu)

#include<iostream>

#include<cmath>

#include<cstdio>



int main()

{

    long long int num{0};

    int remain{0},count{0};

    char s[20] = {0};

    

    scanf("%lli",&num);

    

    while(num > 0){

        remain = num % 26;

        

        if(remain == 0){

            s[count] = 26;

        }else{

            s[count] = remain;

        }

        

        num -= 1;

        num /= 26;

        count++;

    }

    

    while(--count >= 0){

        printf("%c",s[count] + 'a' - 1);

    }

    

    printf("\n");

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 5.220216959233605x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[26] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <bits/stdc++.h>

using namespace std;



typedef long long ll;



string solve(ll n)

{

    ll x = 26;

    int cnt = 1;

    while (n > x)

    {

        n -= x;

        x = x * 26;

        cnt ++;

    }



    n -= 1;

    string ans = "";

    while (n)

    {

        ans = (char)('a' + (n % 26ll)) + ans;

        n /= 26;

    }

    // cout << ans << endl;

    // cout << (cnt - ans.length()) << endl;

    int len = cnt - ans.length();

    for (int i = 0; i < len; i ++)

        ans = 'a' + ans;

    return ans;

    

}



int main()

{

    ll n;

    cin >> n;

    cout << solve(n) << endl;

    // n --;

    // if (n == 0)

    // {

    //     cout << 'a' << endl;

    //     return 0;

    // }

    // string ans;

    // while (n)

    // {



    //     ans = (char)('a' + (n % 26ll)) + ans;

    //     n /= 26;

    // }

    // cout << ans << endl;

    

}

// Faster C++ solution for the same problem (measured speedup: 5.334311245648996x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[26] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include <cstdio>

#include <cstring>

#include <string>

#include <algorithm>

using namespace std; 

typedef long long LL;

const int MAXN=1E5+10;

int q[MAXN],tong[MAXN],a[MAXN];

long long sumans;

string name(LL N) {

	N-=1;

	LL pw=26,i=1;

	while(N>=pw) {

		N-=pw;

		pw*=26;

		++i;

	}

//	printf("%lld %lld %lld\n",N,pw,i);

	string names="";

	while(N>0) {

		LL r=N%26;

		names=char(r+'a')+names;

		N/=26;

	}

	int x=names.length();

	if(x!=i) {

		names=string(i-x,'a')+names;

	}

	return names;

}

int main() {

	LL N;

	scanf("%lld",&N);

	printf("%s",name(N).c_str());

	return 0;

} 

// Faster C++ solution for the same problem (measured speedup: 4.935040290655589x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[26] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}
// Slower C++ solution:
#include<bits/stdc++.h>

using namespace std;

string s="";

int main(){



    ios::sync_with_stdio(false);

    cin.tie(0);



    long long n;

    cin>>n;

    while(n--){

        s=char(n%26+'a')+s;

        n/=26;

    }



    cout<<s;

}


// Faster C++ solution for the same problem (measured speedup: 5.38578722003104x):
#include<stdio.h>

#include<string.h>



int main()

{

	long long n;

	char pass[26] = {0};

	

	scanf("%lld", &n);

	int i = 0;

	

	--n;

	while(n >= 0){

		pass[i] = (n % 26) + 'a';

		n /= 26;

		++i;

		--n;

	}

	

	int len = strlen(pass);

	

	for(int i = len - 1 ; i >= 0; i--){

		printf("%c", pass[i]);

	}

	puts("");

}