#include <bits/stdc++.h>
using namespace std;
unsigned long long mod = 1e9 + 7;
long long _sieve_size;
bitset<10000010> bs;
vector<int> primes;
set<long long> divisors;
void Divisors(long long n) {
  for (long long i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i) {
        divisors.insert(i);
      } else {
        divisors.insert(i);
        divisors.insert(n / i);
      }
    }
  }
}
pair<long long, pair<long long, long long> > extendedEuclid(long long a,
                                                            long long b) {
  if (a == 0) return make_pair(b, make_pair(0, 1));
  pair<long long, pair<long long, long long> > p;
  p = extendedEuclid(b % a, a);
  return make_pair(
      p.first,
      make_pair(p.second.second - p.second.first * (b / a), p.second.first));
}
long long modInverse(long long a, long long m) {
  return (extendedEuclid(a, m).second.first + m) % m;
}
long long inverseMod(long long x, long long y, long long z) {
  return ((x % z) * modInverse(y, z)) % z;
}
void sieve(long long bound) {
  _sieve_size = bound + 1;
  bs.set();
  bs[0] = bs[1] = 0;
  for (long long i = 0; i <= _sieve_size; i++)
    if (bs[i]) {
      for (long long j = i * i; j <= _sieve_size; j += i) bs[j] = 0;
      primes.push_back((int)i);
    }
}
string precisionCompute(long long x, long long y, long long n) {
  string s = "";
  if (((x > 0) && (y < 0)) || ((x < 0) && (y > 0))) {
    cout << "-";
    x = x > 0 ? x : -x;
    y = y > 0 ? y : -y;
  }
  long d = x / y;
  bool afterdec = false;
  for (int i = 0; i <= n; i++) {
    if (afterdec) s.push_back(d + '0');
    x = x - (y * d);
    if (x == 0) break;
    x = x * 10;
    d = x / y;
    if (i == 0) afterdec = true;
  }
  return s;
}
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a * (b / gcd(a, b)); }
long long convert(long long x) {
  int i = 0;
  long long counter = 0;
  while (x) {
    long long rem = x % 6;
    counter += rem * pow(10, i);
    i++;
    x /= 6;
  }
  return counter;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  long long t(1);
  while (t--) {
    long long n, x, y;
    cin >> n >> x >> y;
    vector<long long> v(n);
    for (int i = 0; i < n; i++) {
      cin >> v[i];
    }
    for (int i = 0; i < n; i++) {
      bool Isvalid = true;
      int cnt = 0;
      for (int j = i; j > -1 && (abs(j - i) <= x); j--) {
        if (v[i] > v[j]) {
          Isvalid = false;
          break;
        }
        cnt++;
      }
      if (cnt < x) Isvalid = false;
      if (!Isvalid) continue;
      for (int j = i + 1; j < n && ((j - i) <= y); j++) {
        if (v[i] > v[j]) {
          Isvalid = false;
          break;
        }
      }
      if (Isvalid) {
        cout << i + 1;
        return 0;
      }
    }
  }
  return 0;
}
