#include <bits/stdc++.h>
#define fi first
#define se second
#define ll long long
#define ld long double
#define pb push_back
#define pf push_front
#define pll pair<ll,ll>
#define ppl pair<pll,ll>
#define plp pair<ll,pll>
#define pi 3.14159265358979323846264338327950
const ll MOD=1e9 + 7;
const ll N=2e5 + 7;
using namespace std;
//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
// use rng for random number generation





ll POWER(ll base,ll expo)
{
    ll ret=1;
    while(expo)
    {
        if(expo&1)ret=ret*base;
        expo>>=1;
        base=base*base;
    }
    return ret;
}


ll ext_gcd(ll a,ll b,ll& x,ll& y)
{
    ll d = a;
    if(b == 0){
        x = 1;
        y = 0;
    }
    else{
        d = ext_gcd(b,a%b,y,x);
        y -= (a/b)*x;
    }
    return d;
}

ll mod_inv(ll a,ll m)
{
    ll x,y;
    ext_gcd(a,m,x,y);
    return (x%m + m)%m;
}






int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll test_cases = 1; //cin>>test_cases;
    while(test_cases --)
    {
        //freopen("input.txt","r",stdin);
        //freopen("output.txt","w",stdout);
        ll a,b,k; cin>>a>>b>>k;
        string s;
        for(ll i=0;i<a;i++)s += 'a';
        for(ll i=a;i<a+b;i++)s += 'b';

        k--;
        ll l = 0, r = a;
        ll n = a + b;
        while(k > 0){
            ll x = (n - r);
            ll num = n - r + 1;
            ll denom = 2;
            ll st = -1;
            for(ll i=r-1;i>=l;i--){
                if(k - x >= 0){
                    k -= x;
                    st = i;
                    x = (x*num)/denom;


                    if(k == 0){
                        ll cnta = 0;
                        ll cntb = 0;
                        for(ll j=i;j<n;j++){
                            if(s[j] == 'a')cnta++;
                            else cntb++;
                        }

                        for(ll j=i;j<n;j++){
                            if(cntb > 0){
                                s[j] = 'b';
                                cntb--;
                            }
                            else if(cnta){
                                s[j] = 'a';
                                cnta--;
                            }
                        }
                    }

                    num++;
                    denom++;
                }
                else break;
            }

            if(k == 0)break;

            if(st != -1){
                swap(s[st-1],s[r]);
                k--;
                l = st + 1;
                r = r + 1;
            }
            else break;
        }


        while(k > 0){
            k--;

            bool ok = next_permutation(s.begin(),s.end());
        }

        cout<<s;
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

#define IO          ios_base :: sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int         long long
#define double      long double
#define vi          vector<int>
#define vvi         vector<vi>
#define pii         pair<int, int>
#define vii         vector<pii>
#define endl        '\n'
#define pb          push_back
#define all(v)      (v).begin(), (v).end()
#define rall(v)     (v).rbegin(), (v).rend()
#define mod         1000000007

int C[61][31];


void solve() {
	int a, b, k;
	cin >> a >> b >> k;
	C[0][0] = 1;
	for (int i = 1; i <= a + b; i++) {
		for (int j = 0; j <= a; j++) {
			if (i - 1 >= 0 && j - 1 >= 0)
				C[i][j] = C[i - 1][j - 1];
			if (i - 1 >= 0)
				C[i][j] += C[i - 1][j];
		}
	}
	// for (int i = 1; i <= a + b; i++) {
	// 	for (int j = 0; j <= a; j++) {
	// 		cerr << C[i][j] << ' ';
	// 	}
	// 	cerr << endl;
	// }
	while (a > 0 && b > 0) {
		int v = C[a + b - 1][a - 1];
		if (v >= k) {
			cout << 'a';
			a--;
		} else {
			cout << 'b';
			b--;
			k -= v;
		}
	}
	cout << string(a, 'a');
	cout << string(b, 'b');
	cout << endl;
}

signed main() {
	IO;
	int t = 1;
	// cin >> t;
	while (t--) {
		solve();
	}
	return 0;
}