#include <bits/stdc++.h>
using namespace std;
long long INF = 1e9 + 7;
void solve() {
  int n, x, y;
  cin >> n >> x >> y;
  vector<long long> a(n);
  for (auto &el : a) cin >> el;
  if (n == 1) {
    cout << 1 << endl;
    return;
  }
  vector<long long> pref(n), suf(n), vec;
  int indV = 0, indP = 0;
  for (int i = 0; i <= n; i++) {
    if (i <= x - 1) {
      vec.push_back(a[i]);
      pref[indP] = *min_element(vec.begin(), vec.end());
      indP++;
    } else {
      vec[indV] = 1e9 + 7;
      vec.push_back(a[i]);
      pref[indP] = *min_element(vec.begin(), vec.end());
      indP++;
      indV++;
    }
  }
  vec.clear();
  indV = 0;
  int indS = n - 1;
  for (int i = n - 1; i >= 0; i--) {
    if (i >= n - y) {
      vec.push_back(a[i]);
      suf[indS] = *min_element(vec.begin(), vec.end());
      indS--;
    } else {
      vec[indV] = 1e9 + 7;
      vec.push_back(a[i]);
      suf[indS] = *min_element(vec.begin(), vec.end());
      indS--;
      indV++;
    }
  }
  indP = 0, indS = 1;
  for (int i = 0; i < n; i++) {
    if (i == 0) {
      if (a[i] < suf[indS]) {
        cout << i + 1 << endl;
        return;
      } else {
        indS++;
      }
    } else if (i == n - 1) {
      cout << n << endl;
      return;
    } else {
      if (a[i] < pref[indP] && a[i] < suf[indS]) {
        cout << i + 1 << endl;
        return;
      } else {
        indP++;
        indS++;
      }
    }
  }
}
int main() { solve(); }
