// Arup Guha
// 6/20/2025
// Zig Zag Nametag
// https://open.kattis.com/problems/zigzag

using namespace std;
#include <bits/stdc++.h>

int main() {

    int n;
    cin >> n;

    // I just cased this out...
    if (n < 26)
        cout << "a" << (char)('a'+n) << endl;

    // Let see if we can handle this in general.
    else {

        // Total number of letters.
        int numLet = (n-1)/25 + 2;

        // This is a bit strange for the second letter calculation.
        // I figured this out by playing around with cases in between 26 and 50
        // then realizing a cyclic behavior.
        int left = n%25 == 0 ? 25 : n%25;
        char letTwo = 'n' + left/2;

        // Definitely the first two letters.
        cout << 'a' << letTwo;

        // Update the gap left.
        n = n - (letTwo -'a');
        char lastLet = letTwo;

        // Here is the zig zag behavior.
        for (int i=3; i<numLet; i++) {

            // Helps me figure out how far I've "moved"
            char prevLet = lastLet;

            // Greedy guesses here.
            if (i%2 == 1) {
                cout << 'a';
                lastLet = 'a';
            }
            else {
                cout << 'z';
                lastLet = 'z';
            }

            // Update what's left to skip accordingly.
            n -= abs(lastLet-prevLet);
        }

        // Last letter.
        if (numLet%2 == 0)
            cout << (char)((int)lastLet + n) << endl;
        else
            cout << (char)((int)lastLet - n) << endl;
    }

    return 0;
}
