#include <cmath>
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <vector>
#include <map>
#include<cstdio>
#include<functional>
#include <bitset>
#include <iomanip>
#include <cctype>
#define rep(i, n) for (int i = 0; i < (n); i++)
#define repi(i,a,b) for(int i=int(a);i<int(b);++i)
#define repr(i, n) for(int i = n; i >= 0; i--)
#define ll long long
using namespace std;
template <typename T> bool chmin(T &a, const T &b) { if (a > b) { a = b; return true; } return false; }
template <typename T> bool chmax(T &a, const T &b) { if (a < b) { a = b; return true; } return false; }
const ll INF = 1000000000000000000;
const ll MOD = 1e9 + 7;

int main()
{
	ll n, a, b; cin >> n >> a >> b;
	cout << n - a + b << endl;
	system("pause");
}


#include <bits/stdc++.h>
using namespace std;
#define gok ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define endl "\n"
# define int long long
# define ll long long
#define pb push_back
const int N = 300005,mod = 1e9 + 7;
 ll help(ll n,ll m)
{
    ll ans=1;
    for(ll a=m+1;a<=n;a++)
    {
        ans*=a;
        ans/=(a-m);
    }
    return ans;
}
signed main(){
	gok


  int a,b,k;
  cin>>a>>b>>k;
  k--;
  vector<int> v;
  int rem = b;
  for(int i=1;i<=a+b;i++)
  {
      int c2 = rem;
      int tot = a+b-i+1;
      int c1 = tot-c2;
      int tm = help(tot-1,c2);
     // cout<<tm<<" "<<i<<endl;
      if(rem>0 && tm<=k)
      {
          k -= tm;
          v.pb(i);
          //cout<<i<<endl;
          rem--;
      }

  }
 // cout<<rem<<endl;
  int idd = a+b;
  while(rem>0 && rem--)
    v.pb(idd--);
   sort(v.begin(),v.end());
   string res="";
   int idx=1;
   for(int i=1;i<=a+b;i++)
   {
       if(v[idx-1]==i)
       {
           res.pb('b');
           idx++;

       }
       else
        res.pb('a');
   }
cout<<res;


}




















