/**
 * code generated by JHelper
 * More info: https://github.com/AlexeyDmitriev/JHelper
 * @author NikuKyabe
 */

#include <iostream>
#include <fstream>

#include <bits/stdc++.h>

#define int long long
#define REP(i, n) for (int i = 0, i##_len = (n); i < i##_len; ++i)
#define FOR(i, a, b) for (int i = (a), i##_len = (b); i < i##_len; ++i)
#define REV(i, a, b) for (int i = (b) - 1; i >= (a); --i)
#define CLR(a, b) memset((a), (b), sizeof(a))
#define DUMP(x) cout << #x << " = " << (x) << endl;
#define INF 1001001001001001001l
#define MOD 1000000007
#define fcout cout << fixed << setprecision(12)

using namespace std;

typedef pair<int, int> P;
template<class T>
using M =vector<vector<T>>;

class BAtCoderCondominium {
public:
	void solve(std::istream& cin, std::ostream& cout) {
        int n,k;
        cin >> n >> k;
        int ans = 0;
        REP(i,n)REP(j,k){
            ans += (i+1) * 100 + (j+1);
        }
        cout << ans << endl;
	}
};

signed main() {
	BAtCoderCondominium solver;
	std::istream& in(std::cin);
	std::ostream& out(std::cout);
	solver.solve(in, out);
	return 0;
}

#include<bits/stdc++.h>
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#define all(k) k.begin(),k.end()
#define INF 1e9
#define repk(i,a,n) for(int i=a;i<=n;i++)
#define rep(i,a,n) for(int i=a;i<n;i++)
#define rep2(i,a, n) for(int i=a;i<n;i+=2)
#define per(i,a,n) for(int i=n-1;i>=a;i--)
#define pb push_back
#define ub pop_back
#define eb emplace_back
#define ll  long long int
#define ull unsigned long long
#define pi pair<int,int>
#define vc vector<char>
#define vpi vector<pi>
#define vi vector<int>
#define vl vector<ll>
#define vvi vector<vi>
#define vb vector<bool>
#define pq priority_queue
#define vvc vector<vc>
#define mi map<int,int>
#define mset map<string,set<char>>
#define umap unordered_map
#define int int64_t
using namespace std;
#define fi first
#define se second
const int mod = int(1e9)+7;
int ar(int x,int y){
  int res=1;

  while(y){
    if(y&1)
      res=(res*x)%mod;

    y>>=1;
    x=((x*x)%mod);
  }
return res;
}
int gcd(int x,int y){
  if(x==0)
    return y;

  return gcd(y%x,x);
}
vvi dp;
int fun(int a, int b) {
    if (dp[a][b] != -1) return dp[a][b];

    else if(a == 0 || b == 0)
      return dp[a][b] = 1;
    else 
      return dp[a][b] = fun(a - 1, b) + fun(a, b - 1);
}
void sol()
{int a,b,k;
  cin>>a>>b>>k;k--;
 dp = vvi(a + 1, vi(b + 1, -1));

    int cnt = k;

    int ca = a, cb = b;

    rep(i,0, a + b) {
        if (ca == 0) {
            cout << "b";
            cb--;
            continue;
        }

        if (cb == 0) {
            cout << "a";
            ca--;
            continue;
        }

        if (fun(ca - 1, cb) > cnt) {
            ca--;
            cout << "a";
        } else {
            cnt -= fun(ca - 1, cb);
            cb--;
            cout << "b";
        }
    }



 cout<<'\n';
}



int32_t main() {


int t=1;
    // cin>>t;

 for(int i=1;i<=t;++i){

 // cout<<"Case #"<<i<<": ";
sol();


}


  return 0;
}

