#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define INF 1e9+7
#define rep(i,n) for(ll i=0;i<n;i++)
#define pii pair<int,int>
#define pll pair<ll,ll>
const int maxn = 200000;
ll mod = INF;

int main(){
  string s;
  int n,x;
  cin >> n>>x;
  rep(i,n){
    char c;
    cin >> c;
    if(c=='o'){
      x++;
    }else{
      x=max(0,x-1);
    }
  }
  cout << x<<endl;
  return 0;
}
#include <bits/stdc++.h>
using namespace std;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
using ll = long long;
using P = pair<ll, ll>;
const long double PI = acos(-1.0L);
ll GCD(ll a, ll b) { return b?GCD(b, a%b):a; }
ll LCM(ll a, ll b) { return a/GCD(a, b)*b; }

ll a, b, k;

int main() {
    cin >> a >> b >> k;
    ll sum = a+b;
    ll now = 0;
    ll acnt = 0;
    ll bcnt = 0;
    string ans;
    for(ll i = 0; i < sum; ++i) {
        // cout << "now " << now << endl;
        if(a-acnt == 0) {
            ans.push_back('b');
            bcnt++;
            continue;
        }
        if(b-bcnt == 0) {
            ans.push_back('a');
            acnt++;
            continue;
        }
        ll ca = a-acnt-1LL;
        ll cb = b-bcnt;
        ll ue = 1LL;
        map<ll, ll> uecnt;
        if(ca >= cb) {
            for(ll j = 0; j < cb; ++j) {
                ll tar = sum-(i+1)-j;
                ll tt = tar;
                for(ll k = 2; k*k <= tt; ++k) {
                    if(tar%k == 0) {
                        while(tar%k == 0) {
                            tar /= k;
                            uecnt[k]++;
                        }
                    }
                }
                uecnt[tar]++;
                ll tar2 = cb-j;
                ll tt2 = tar2;
                for(ll k = 2; k*k <= tt2; ++k) {
                    if(tar2%k == 0) {
                        while(tar2%k == 0) {
                            tar2 /= k;
                            uecnt[k]--;
                        }
                    }
                }
                uecnt[tar2]--;
            }
        }else {
            for(ll j = 0; j < cb; ++j) {
                ll tar = sum-(i+1)-j;
                ll tt = tar;
                for(ll k = 2; k*k <= tt; ++k) {
                    if(tar%k == 0) {
                        while(tar%k == 0) {
                            tar /= k;
                            uecnt[k]++;
                        }
                    }
                }
                uecnt[tar]++;
                ll tar2 = cb-j;
                ll tt2 = tar2;
                for(ll k = 2; k*k <= tt2; ++k) {
                    if(tar2%k == 0) {
                        while(tar2%k == 0) {
                            tar2 /= k;
                            uecnt[k]--;
                        }
                    }
                }
                uecnt[tar2]--;
            }
        }
        ll kasan = 1LL;
        for(auto x : uecnt) {
            for(int l = 0; l < x.second; ++l) {
                kasan *= x.first;
            }
        }
        // cout << "now " << kasan << endl;
        ll check = now+kasan;
        if(check >= k) {
            // ここはaを使う
            ans.push_back('a');
            acnt++;
        }else {
            now += kasan;
            ans.push_back('b');
            bcnt++;
        }
    }
    cout << ans << endl;
}