#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
using namespace std;
using ll = long long;
using P = pair<int, int>;

int main()
{
    ll n;
    cin >> n;
    ll sum = 26;
    ll cnt = 1;
    while (1)
    {
        if (n <= sum)
            break;
        sum = sum * 26 + 26;
        cnt++;
    }
    vector<string> res(cnt);
    rep(i, cnt)
    {
        n--;
        int ans = n % 26;
        res[cnt - i - 1] = (char)('a' + ans);
        n /= 26;
    }
    rep(i, res.size()) cout << res[i];
    cout << endl;
}

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <cmath>
#include <stdio.h>
#include <list>
#include <numeric>
#include <stack>
#include <queue>
#include <tuple>
#include <bitset>
#include <map>
#include <math.h>
//ceil(a/b)   (a + (b - 1))/ b
using namespace std;
#define rep(i,n) for(int i = 0; i < (n); i++)
typedef long long ll;
typedef pair<int,int> P;
const int inf=1000000007;
const ll mod=1000000007;
const double PI=3.14159265358979323846;
int dx[] = {1,-1,0,0};
int dy[] = {0,0,1,-1};

ll gcd(ll a, ll b){
  if (b==0) return a;
  else return gcd(b,a%b);
}

int cans(bool f){
  if(f) cout << "Yes" << endl;
  else cout << "No" << endl;
  return 0;
}





int main(){
  ll N;
  cin >> N;
  char a[28];
  string s = "";
  for(char i='a'; i<='z';i++){
	a[int(i) - int('a')] = i;
  }
  while(N){
	N--;
	s += a[N%26];
	N /= 26;
  }
  reverse(s.begin(), s.end());
  cout << s << endl;
  return 0;
}


