#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 1e5 + 10;
inline void rd(long long &s) {
  s = 0;
  long long t = 1, k = getchar();
  for (; k < '0' || k > '9'; k = getchar())
    if (k == '-') t = -1;
  for (; k >= '0' && k <= '9'; k = getchar())
    s = (s << 1) + (s << 3) + (k ^ 48);
  s *= t;
}
long long n, x, y;
long long a[MAXN];
long long l[MAXN], r[MAXN];
signed main() {
  rd(n);
  rd(x);
  rd(y);
  for (long long i = 1; i <= n; i++) {
    rd(a[i]);
    l[i] = r[i] = i;
    while (a[l[i] - 1] >= a[i] && l[i] > 1) l[i] = l[l[i] - 1];
  }
  for (long long i = n; i >= 1; i--) {
    while (a[r[i] + 1] >= a[i] && r[i] < n) r[i] = r[r[i] + 1];
  }
  for (long long i = 1; i <= n; i++) {
    long long zuo = i - l[i] + 1, you = r[i] - i + 1;
    if (zuo < x || you < y) continue;
    printf("%lld\n", i);
    break;
  }
  return 0;
}
