#include <bits/stdc++.h>
const int maxn = 1e6 + 10;
const int maxt = 2e5 + 10;
const long long inf = 1e16;
const int mod = 1e9;
using namespace std;
int n, a, b;
string s;
int kq;
inline void init() {
  cin >> n >> a >> b;
  cin.ignore();
  cin >> s;
}
inline void prepare() {
  int t = 0;
  for (int i = 0; i < n; ++i) {
    if (s[i] == '.')
      t++;
    else {
      if (t > 0) {
        if (a < t / 2) {
          kq += a;
          a = 0;
        }
        if (a >= t / 2) {
          kq += t / 2;
          a -= t / 2;
        }
        if (b < t / 2) {
          kq += b;
          b = 0;
        }
        if (b >= t / 2) {
          kq += t / 2;
          b -= t / 2;
        }
        if (t % 2 == 1) {
          if (a > b) swap(a, b);
          if (b > 0) {
            b--;
            kq++;
          }
        }
      }
      t = 0;
    }
  }
  if (t > 0) {
    if (a < t / 2) {
      kq += a;
      a = 0;
    }
    if (a >= t / 2) {
      kq += t / 2;
      a -= t / 2;
    }
    if (b < t / 2) {
      kq += b;
      b = 0;
    }
    if (b >= t / 2) {
      kq += t / 2;
      b -= t / 2;
    }
    if (t % 2 == 1) {
      if (a > b) swap(a, b);
      if (b > 0) {
        --b;
        ++kq;
      }
    }
  }
}
inline void solve() { cout << kq; }
inline void file() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  freopen(
      "TEST"
      ".INP",
      "r", stdin);
  freopen(
      "TEST"
      ".OUT",
      "w", stdout);
}
int main() {
  init();
  prepare();
  solve();
  return 0;
}
