#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define REP(i,m,n) for (int i = (m); i < (n); ++i)
#define rrep(i,n) for (int i = (n)-1; i >= 0; --i)
#define RREP(i,m,n) for (int i = (n)-1; i >= (m); ++i)
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
using namespace std;
using ll = long long int;
using vec = vector<int>;
using vecll = vector<ll>;
using P = pair<int,int>;
const int INF = 1e9+7;

void dfs(int a, int b, ll k) {
  ll now = 1;
  rep(i,a+1) {
    if (k - now < 0) {
      rep(j,a-i) {
        cout << 'a';
      }
      cout << 'b';
      if (b > 1) dfs(i, b-1, k);
      else rep(j,i) cout << 'a';
      break;
    }
    k -= now;
    now = now * (b+i) / (i+1);
  }
}

int main() {
  int a, b; cin >> a >> b;
  ll k; cin >> k; k--;
  
  vector<vecll> dp(a+1, vecll(b+1, 1));
  REP(i,1,a+1) {
    REP(j,1,b+1) {
      dp[i][j] = dp[i-1][j] + dp[i][j-1];
    }
  }
  int ii = a, jj = b;
  string s;
  rep(i, a+b) {
    if (ii == 0) {
      jj--;
      cout << 'b';
    } else if (k < dp[ii-1][jj]) {
      ii--;
      cout << 'a';
    } else {
      k -= dp[ii-1][jj];
      jj--;
      cout << 'b';
    }
  }

  cout << s << endl;
}

#include <iostream>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <algorithm>
#include <bitset>
#include <string>
#include <cstdio>
#include <cmath>
#include <climits>
#include <fstream>
#include <functional>
using namespace std;

const long long INF = 1LL << 60;
const long long MOD = 1000000007;
typedef pair<int, int> pii;
typedef pair<long long, long long> pll;

long long comb(long long n, long long r)
{
    if (n == 1) return 1LL;

    long long ans = 1;
    for (int i = 1; i <= r; ++i)
    {
        ans *= n;
        ans /= i;

        --n;
    }

    return ans;
}

int main(void)
{
    long long a,b,k;
    cin >> a >> b >> k;
    long long s = a + b;
    
    string ans;
    int count_a = 0;
    int count_b = 0;
    for (int i = 0; i < s; ++i)
    {
        if (i == s-1)
        {
            if (count_a < a)
            {
                ans += 'a';
            }
            else
            {
                ans += 'b';
            }
            break;
        }

        long long c = comb(s-count_a-count_b-1, a-count_a-1);
        // cout << c << endl;
        if (k <= c)
        {
            ans += 'a';
            count_a += 1;
        }
        else
        {

            k -= c;
            ans += 'b';
            count_b += 1;
        }

        if (count_a == a)
        {
            for (int j = 0; j < b - count_b; ++j)
            {
                ans += 'b';
            }
            break;
        }
        if (count_b == b)
        {
            for (int j = 0; j < a - count_a; ++j)
            {
                ans += 'a';
            }
            break;
        }
    }

    cout << ans << endl;
}