#include #include #include #include #include #include #include using namespace std; const int LIMIT = 7e4; int main() { int n; cin >> n; vector counts(LIMIT, 0); long long half; for (long long i = 0; i < counts.size(); i += 2) { half = i / 2; counts[i] = half * (half + 1); counts[i + 1] = (half + 1) * (half + 1); } string ans; int c_idx = 0; while (n > 0) { auto it = upper_bound(counts.begin(), counts.end(), n); it--; int len = distance(counts.begin(), it); string str(len, 'a' + c_idx); for (int i = 1; i < len; i += 2) { str[i]++; } ans.append(str); // printf("%d -> %d: len %d: \n", n, n - *it, len, str.c_str()); n -= *it; c_idx = (c_idx + 2) % 26; } cout << ans << endl; return 0; }