#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using vl = vector<ll>;
using vll = vector<vl>;
using Pll = pair<ll, ll>;
#define rep(i,n) for(ll i=0;i<(ll)(n);i++)
#define Rep(i,j,n) for (ll i=(ll)(j);i<=(ll)(n);++i)
#define all(v) v.begin(), v.end()
#define sz(x) ((int) x.size())
#define pb push_back
#define mp make_pair
#define mt make_tuple
#define F first
#define S second
const int MOD = 1e9+7;
const int mod = 998244353;
const ll INF = 2e15;
template<class T> void print(const T& t){ cout << t << endl; }
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}

/*
ll ti=clock();
cout<<("Execution Time: %.4lf sec", 1.0 * (clock() - ti) / CLOCKS_PER_SEC)<<endl;
*/

int main(){
  ll x,y,z;
  cin>>x>>y>>z;
  ll ans=10000000;
  while(1){
    if(y*z>x*ans){
      break;
    }
    ans--;
  }
  print(ans);
}
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<random>
#include<ctime>
#include<queue>
using namespace std;
typedef long long ll;
#define fi first
#define se second
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 1000000000;
const int mod = 1e9+7;
const int maxn = 2e6+5;
ll n;
ll up[105];
ll dp[105][105][105]; 
int vis[105][105][105];
int len;
ll dfs(int pos,int limit,int a,int b){
	if(pos==-1) return 1;
	if(!limit&&vis[pos][a][b]!=-1) return dp[pos][a][b];
	ll ans = 0;
	int li = limit?up[pos]:1;
	for(int i=0;i<=li;i++){
		if(i==0){ 
			if(a>0) ans+=dfs(pos-1,limit&&(i==li),a-1,b); 
		}else {
			if(b>0) ans+=dfs(pos-1,limit&&(i==li),a,b-1);
		}
	}
	if(!limit&&vis[pos][a][b] == -1) dp[pos][a][b] = ans,vis[pos][a][b] = 0;
	return ans; 
}
ll f(ll x,int a,int b){
	int pos = 0;memset(up,0,sizeof(up));
	while(x){
		up[pos++] = x&1LL;
		x>>=1LL;
	}
	return dfs(a+b-1,1,a,b); 
}
void clc(ll ans){
	
	string tmp;
	while(ans){
		if(ans&1LL) tmp+='b';
		else tmp+='a';
		ans>>=1;
	}
	while(tmp.size()<(len)) tmp+='a';
	reverse(tmp.begin(),tmp.end());
	cout<<tmp<<"\n";
}
int main() {
	int a,b;
	ll s;
	cin>>a>>b>>s;
	len = a+b;
	ll l = (1LL<<(b))-1;
	ll r = l<<a; 
	ll ans = 0;
	memset(vis,-1,sizeof(vis));
	while(l<=r){
		ll mid = l+(r-l)/2;
		ll sum = f(mid,a,b);
		if(sum>=s){
			if(sum==s){
				ans = mid;
			}
			r = mid-1;
		}else{
			l = mid+1;
		}
	}
	clc(ans);
    return 0;
}

