#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e16;
const long long MOD = 1e9 + 7;
const int MX = 100015;
int k;
int dp[27][100006];
long long dp1[1005];
long long DP1(int x) {
  if (x == 1) return 0;
  if (dp1[x] != -1) return dp1[x];
  long long a = x / 2, b = x / 2 + (x % 2);
  dp1[x] = DP1(a) + DP1(b) + (a * b);
  return dp1[x];
}
int DP(int x, int y) {
  int &ret = dp[x][y];
  if (y == k && x == 24) return ret = 1;
  if (x == 24) return ret = 0;
  if (ret != -1) return ret;
  ret = 0;
  int s;
  for (int i = 1; ret == 0 && i <= 300; i++) {
    s = DP1(i);
    if (s + y > k) break;
    ret = max(ret, DP(x + 1, y + s));
  }
  return ret;
}
void fs(int x, int y) {
  if (24 == x) exit(0);
  int s;
  for (int i = 1; i <= 300; i++) {
    s = DP1(i);
    if (DP(x + 1, y + s)) {
      for (int j = 0; j < i; j++) {
        cout << (char)('a' + x);
      }
      fs(x + 1, y + s);
    }
  }
}
int main() {
  cin >> k;
  memset(dp, -1, sizeof(dp));
  memset(dp1, -1, sizeof(dp1));
  DP(0, 0);
  fs(0, 0);
  return 0;
}
