#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline void read(T &x) {
  char ch;
  x = 0;
  bool flag = false;
  ch = getchar();
  while (ch > '9' || ch < '0') {
    if (ch == '-') flag = true;
    ch = getchar();
  }
  while ((ch <= '9' && ch >= '0')) {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  if (flag) x *= -1;
}
template <typename T>
inline void read(T &x, T &y) {
  read(x);
  read(y);
}
template <typename T>
inline void read(T &x, T &y, T &z) {
  read(x);
  read(y);
  read(z);
}
const int maxn = 111111;
int k, f[maxn], g[maxn], h[maxn];
int main() {
  read(k);
  if (!k) {
    puts("ab");
    return 0;
  }
  memset(f, 0x3f, sizeof(f));
  f[0] = 0;
  for (int i = (1); (i) <= (500); (i)++) {
    int temp = i * (i - 1) >> 1;
    for (int j = (temp); (j) <= (k); (j)++)
      if (f[j - temp] < f[j] - 1) {
        f[j] = f[j - temp] + 1;
        h[j] = j - temp;
        g[j] = i;
      }
  }
  for (int x = k, ch = 'a'; x; x = h[x], ch++)
    for (int i = (1); (i) <= (g[x]); (i)++) putchar(ch);
  putchar('\n');
  return 0;
}
