#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(int)(n);i++)
#define rep1(i,n) for(int i=1;i<=(int)(n);i++)
#define all(c) c.begin(),c.end()
#define pb push_back
#define fs first
#define sc second
#define show(x) cout << #x << " = " << x << endl
#define chmin(x,y) x=min(x,y)
#define chmax(x,y) x=max(x,y)
using namespace std;
template<class S,class T> ostream& operator<<(ostream& o,const pair<S,T> &p){return o<<"("<<p.fs<<","<<p.sc<<")";}
template<class T> ostream& operator<<(ostream& o,const vector<T> &vc){o<<"sz = "<<vc.size()<<endl<<"[";for(const T& v:vc) o<<v<<",";o<<"]";return o;}
string operator*(string a,int k){
	string s;
	rep(i,k) s += a;
	return s;
}
string solve(int A,int B,int C,string a,string b,string c){
	// puts("-------------");
	// printf("A,B,C = %d,%d,%d\n",A,B,C);
	// show(a);
	// show(b);
	// show(c);
	// puts("-------------");
	if(B+C==0){
		return a*A;
	}
	if(A+C==0){
		return b*B;
	}
	if(B+A==0){
		return c*C;
	}
	if(A==0){
		return solve(B,C,0,b,c,"");
	}
	//aaa.aaa.aaa.aa.aa.
	int q = A/(B+C);
	int r = A%(B+C);
	string o = a*q;
	if(r<=C){
		return solve(r,B,C-r,o+a+c,o+b,o+c);
	}else{
		return solve(r-C,C,B-(r-C),o+a+b,o+a+c,o+b);
	}
}
int main(){
	int A,B,C;
	cin>>A>>B>>C;
	cout<<solve(A,B,C,"a","b","c")<<endl;
}
