#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); ++i)
#define rrep(i, n) for (int i = 1; i <= (n); ++i)
#define drep(i, n) for (int i = (n)-1; i >= 0; --i)
#define srep(i, s, t) for (int i = s; i < t; ++i)
#define rng(a) a.begin(), a.end()
#define rrng(a) a.rbegin(), a.rend()
#define maxs(x, y) (x = max(x, y))
#define mins(x, y) (x = min(x, y))
using namespace std;
using ll = long long;
using ull = unsigned long long;
using P = pair<int, int>;
using T = tuple<int, int, int>;
using vi = vector<int>;
using vvi = vector<vi>;
const ll LINF = 1001002003004005006ll;
const int INF = 1001001001;
const int MOD = 1000000007;
const int MAX_T = 200005;

int main() {
  int N, X;
  cin >> N >> X;
  string S;
  cin >> S;
  int score = X;
  for (char s : S) {
    score += (s == 'o' ? 1 : -1);
    maxs(score, 0);
  }

  cout << score << endl;
  return 0;
}

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <iomanip>
#include <cmath>
#include <stdio.h>
#include <queue>
#include <deque>
#include <cstdio>
#include <set>
#include <map>
#include <bitset>
#include <stack>
#include <cctype>
using namespace std;
long long a[100010];
vector<pair<long long, int>> vec;
int main() {
	long long k, n, m, sum = 0;
	cin >> k >> n >> m;
	for (int i = 0; i < k; i++) {
		cin >> a[i];
		long long a1 = a[i] * m / n;
		sum += a1;
		vec.emplace_back(make_pair(a[i] * m - n * a1, i));
		a[i] = a1;
	}
	sort(vec.rbegin(), vec.rend());
	for (int i = 0; i < m - sum; i++) {
		a[vec[i].second]++;
	}
	for (int i = 0; i < k; i++) {
		cout << a[i] << " ";
	}
	cout << endl;
}