#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int a,b;
ll k;
bool sz[100];
ll c[65][65];
void init()
{
	c[0][0]=1;
	for(int i=1;i<=64;i++)
	{
		for(int j=0;j<=i;j++)
		{
			if(j==0) c[i][j]=1;
		    else if(j==i) c[i][j]=1;
			else c[i][j]=c[i-1][j]+c[i-1][j-1];
			
		} 
	}
}
int main()
{
	init();
	cin>>a>>b>>k;
	int nowa=a;
	for(int i=1;i<=a+b&&nowa;i++)
	{
		if(c[a+b-i][nowa-1]>=k)
		{
			sz[i]=1;
			nowa--;
		}
		else 
		{
			sz[i]=0;
			k-=c[a+b-i][nowa-1];
		}
	
	}
	for(int i=1;i<=a+b;i++)
	{
		if(sz[i]==0) cout<<'b';
		else cout<<'a';
	}
	return 0;
	
}
#include <bits/stdc++.h>

using namespace std;

#define REP(i, n)   for(int i = 0; i < (n); i++)
#define REPS(i, n)  for(int i = 1; i <= (n); i++)
#define RREP(i, n)  for(int i = (n)-1; i >= 0; i--)
#define RREPS(i, n) for(int i = (n); i > 0; i--)
#define ALL(v) v.begin(), v.end()
#define RALL(v) v.rbegin(), v.rend()
#define UNIQUE(v) v.erase(unique(v.begin(), v.end()), v.end())
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define YES cout << "YES" << endl
#define Yes cout << "Yes" << endl
#define NO cout << "NO" << endl
#define No cout << "No" << endl

using ll  = long long;
using pi  = pair<int, int>;
using pl  = pair<ll, ll>;
using vi  = vector<int>;
using vl  = vector<ll>;
using vs  = vector<string>;
using vb  = vector<bool>;
using vvi = vector<vi>;
using vvl = vector<vl>;

const int MOD = 1e9 + 7;
//const int MOD = 998244353;
const int INF = 1e9 + 7;
const ll  INFL = 1e18;
const double PI = 3.14159265359;

template<class T> bool chmax(T &a, const T &b) { if(a < b) { a = b; return true; } return false; }
template<class T> bool chmin(T &a, const T &b) { if(a > b) { a = b; return true; } return false; }

ll com(ll n, ll r)
{
    if(n == 0 || r == 0) return 1;
    ll ret = 1;
    for(ll i = 1; i <= r; i++)
    {
        ret *= n-i+1;
        ret /= i;
    }
    return ret;
}

int main()
{ 
    cin.tie(0);
    ios::sync_with_stdio(false);
    cout << fixed << setprecision(20);

    ll a, b, k; cin >> a >> b >> k;
    ll s = 0;
    string ans = "";
    ll x = 0, y = 0;
    REPS(i, a+b-1)
    {
        if(x == a || y == b) break;
        if(k <= s+com(a+b-i, a-(x+1)))
        {
            x++;
            ans.pb('a');
        }
        else
        {
            y++;
            s += com(a+b-i, a-(x+1));
            ans.pb('b');
        }
    }
    cout << ans;
    REP(i, a-x) cout << 'a';
    REP(i, b-y) cout << 'b';
    cout << endl;
}