#include <string>
#include <fstream>
#include <cmath>
#include <cassert>
#include <vector>
#include <algorithm>

using namespace std;

typedef long double real;

const string filename = "intset",
             input_filename = filename + ".in",
             output_filename = filename + ".out";

const real eps = 1e-9;

real my_log (real x) {
  return logl (x);
}

real my_exp (real x) {
  return expl (x);
}

vector<real> fact_log;

real my_fact_log (int i) {
  assert (i >= 0 && i < (int) fact_log.size ());
  return fact_log[i];
}

int main (int, char **) {
  int k, n, l, m;
  ifstream in (input_filename.c_str());
  ofstream out (output_filename.c_str());
  in >> n >> l >> m;
  fact_log.resize (n + 1);
  fact_log[0] = 0.0;
  for (k = 1; k <= n; k++) {
    fact_log[k] = fact_log[k-1] + my_log (k);
  }
  // будем считать, что Петя выбирает не меньше чисел чем Вася
  if (l > m) {
    swap (l, m);
  }
  assert (l <= m && l <= n); 

  vector<real> p(l+1);
  //p[k] - вероятность, что пересечение множеств содержит ровно k элементов
  vector<int> plus, minus;
  for (k = 0; k <= l; k++) {
    if (n - l < m - k) {
      p[k] = 0.0;
      continue;
    }
    plus.clear ();
    minus.clear ();
    //Петя выбрал ровно k чисел из множества Васи
    plus.push_back (l);
    minus.push_back (l - k);
    //Петя выбрал (m - k) чисел не из множества Васи
    plus.push_back (n - l);
    minus.push_back ((n - l) - (m - k));
    // * binomial (m, k)
    plus.push_back (m);
    minus.push_back (k);
    minus.push_back (m - k);
    // / общее количество способов Пети выбрать числа
    minus.push_back (n);
    plus.push_back (n - m);
    sort (plus.begin (), plus.end ());
    sort (minus.begin (), minus.end ());
    real plus_log = 0.0, minus_log = 0.0;
    //складываем начиная с меньших значений
    int i;
    for (i = 0; i < (int) plus.size (); i++) {
      plus_log += my_fact_log (plus[i]);
    }
    for (i = 0; i < (int) minus.size (); i++) {
      minus_log += my_fact_log (minus[i]);
    }
    p[k] = my_exp (plus_log - minus_log);
  }
  int res = -1;
  real s = 1.0;
  for (k = 0; k <= l; k++) {
    if (s - 0.5 > -1e-11) {
      res = k;
    }
    s -= p[k];
  }
  assert (fabs (s) < eps);
  out << res << endl;
  return 0;
}

