#include <bits/stdc++.h>
using namespace std;
int k;
char arr[26] = {'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'};
int query(int n) {
  int l = 0, r = 1000;
  while (l + 1 < r) {
    int m = (l + r) / 2;
    int x = m * (m - 1) / 2;
    if (x == n) return m;
    if (x > n) {
      r = m - 1;
    } else if (x < n) {
      l = m;
    }
  }
  int x1 = (l + 1) * (l) / 2;
  int x2 = (l - 1) * (l) / 2;
  if (x1 <= n)
    return l + 1;
  else
    return l;
}
int main() {
  if (fopen("test.in", "r")) {
    freopen("test.in", "r", stdin);
  }
  cin >> k;
  if (k == 0) {
    cout << "a" << '\n';
    return 0;
  }
  vector<int> ans;
  int lim = 0;
  while (k > 0) {
    int x = query(k);
    ans.push_back(x);
    k -= (x * (x - 1) / 2);
  }
  string ok;
  for (int i = 0; i < ans.size(); i++) {
    for (int j = 0; j < ans[i]; j++) {
      ok += arr[i];
    }
  }
  cout << ok << '\n';
  return 0;
}
