#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
using namespace std;
const long long MAX = 2 * 1e5 + 1;
const long long INF = 1e18L + 5;
template <class T, class U>
void chmin(T &t, const U &u) {
  if (t > u) t = u;
}
template <class T, class U>
void chmax(T &t, const U &u) {
  if (t < u) t = u;
}
template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
  cerr << " " << H;
  debug_out(T...);
}
template <typename Arg1>
void pn(Arg1 &&arg1) {
  cout << arg1 << "\n";
}
template <typename Arg1, typename... Args>
void pn(Arg1 &&arg1, Args &&...args) {
  cout << arg1 << "\n";
  pn(args...);
}
template <typename Arg1>
void ps(Arg1 &&arg1) {
  cout << arg1 << " ";
}
template <typename Arg1, typename... Args>
void ps(Arg1 &&arg1, Args &&...args) {
  cout << arg1 << " ";
  ps(args...);
}
template <typename Arg1>
void read(Arg1 &&arg1) {
  cin >> arg1;
}
template <typename Arg1, typename... Args>
void read(Arg1 &&arg1, Args &&...args) {
  cin >> arg1;
  read(args...);
}
void solve() {
  long long n, x, y;
  read(n, x, y);
  vector<long long> v(n);
  for (long long i = 0; i < n; ++i) {
    read(v[i]);
  }
  long long k = 1, kk = 1;
  long long zero = 0;
  for (long long i = 0; i < n; ++i) {
    k = 1;
    kk = 1;
    for (int j = max((i - x), zero); j < i; j++) {
      if (v[i] >= v[j]) {
        k = 2;
      }
    }
    for (int j = (min((n - 1), i + y)); j > i; j--) {
      if (v[i] >= v[j]) {
        kk = 2;
      }
    }
    if (k == 1 and kk == 1) {
      pn(i + 1);
      return;
    }
  }
  return;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long tc = 1;
  while (tc--) {
    solve();
  }
}

### Prompt

Generate a Cpp solution to the following problem:

For years, the Day of city N was held in the most rainy day of summer. New mayor decided to break this tradition and select a not-so-rainy day for the celebration. The mayor knows the weather forecast for the n days of summer. On the i-th day, a_i millimeters of rain will fall. All values a_i are distinct.

The mayor knows that citizens will watch the weather x days before the celebration and y days after. Because of that, he says that a day d is not-so-rainy if a_d is smaller than rain amounts at each of x days before day d and and each of y days after day d. In other words, a_d < a_j should hold for all d - x ≤ j < d and d < j ≤ d + y. Citizens only watch the weather during summer, so we only consider such j that 1 ≤ j ≤ n.

Help mayor find the earliest not-so-rainy day of summer.

Input

The first line contains three integers n, x and y (1 ≤ n ≤ 100 000, 0 ≤ x, y ≤ 7) — the number of days in summer, the number of days citizens watch the weather before the celebration and the number of days they do that after.

The second line contains n distinct integers a_1, a_2, ..., a_n (1 ≤ a_i ≤ 10^9), where a_i denotes the rain amount on the i-th day.

Output

Print a single integer — the index of the earliest not-so-rainy day of summer. We can show that the answer always exists.

Examples

Input


10 2 2
10 9 6 7 8 3 2 1 4 5


Output


3


Input


10 2 3
10 9 6 7 8 3 2 1 4 5


Output


8


Input


5 5 5
100000 10000 1000 100 10


Output


5

Note

In the first example days 3 and 8 are not-so-rainy. The 3-rd day is earlier.

In the second example day 3 is not not-so-rainy, because 3 + y = 6 and a_3 > a_6. Thus, day 8 is the answer. Note that 8 + y = 11, but we don't consider day 11, because it is not summer.

### Response

```cpp
#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
using namespace std;
const long long MAX = 2 * 1e5 + 1;
const long long INF = 1e18L + 5;
template <class T, class U>
void chmin(T &t, const U &u) {
  if (t > u) t = u;
}
template <class T, class U>
void chmax(T &t, const U &u) {
  if (t < u) t = u;
}
template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
  cerr << " " << H;
  debug_out(T...);
}
template <typename Arg1>
void pn(Arg1 &&arg1) {
  cout << arg1 << "\n";
}
template <typename Arg1, typename... Args>
void pn(Arg1 &&arg1, Args &&...args) {
  cout << arg1 << "\n";
  pn(args...);
}
template <typename Arg1>
void ps(Arg1 &&arg1) {
  cout << arg1 << " ";
}
template <typename Arg1, typename... Args>
void ps(Arg1 &&arg1, Args &&...args) {
  cout << arg1 << " ";
  ps(args...);
}
template <typename Arg1>
void read(Arg1 &&arg1) {
  cin >> arg1;
}
template <typename Arg1, typename... Args>
void read(Arg1 &&arg1, Args &&...args) {
  cin >> arg1;
  read(args...);
}
void solve() {
  long long n, x, y;
  read(n, x, y);
  vector<long long> v(n);
  for (long long i = 0; i < n; ++i) {
    read(v[i]);
  }
  long long k = 1, kk = 1;
  long long zero = 0;
  for (long long i = 0; i < n; ++i) {
    k = 1;
    kk = 1;
    for (int j = max((i - x), zero); j < i; j++) {
      if (v[i] >= v[j]) {
        k = 2;
      }
    }
    for (int j = (min((n - 1), i + y)); j > i; j--) {
      if (v[i] >= v[j]) {
        kk = 2;
      }
    }
    if (k == 1 and kk == 1) {
      pn(i + 1);
      return;
    }
  }
  return;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long tc = 1;
  while (tc--) {
    solve();
  }
}

```