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.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
import java.util.*;
import static java.lang.System.*;
/*
    Shortcut-->
    Arrays.stream(n).parallel().sum();
    string builder fast_output -->

 */
public class cf_hai1 {

    static class FastScanner {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer("");

        String next() {
            while (!st.hasMoreTokens())
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            return st.nextToken();
        }

        int nextInt() {
            return Integer.parseInt(next());
        }

        int[] readArray(int n) {
            int[] a = new int[n];
            for (int i = 0; i < n; i++) a[i] = nextInt();
            return a;
        }

        long nextLong() {
            return Long.parseLong(next());
        }
    }


    public static void main(String[] args) throws IOException {
        cf_hai1.FastScanner sc = new cf_hai1.FastScanner();
        // int test_case = sc.nextInt();
        int test_case = 1;
        for (int z = 0; z < test_case; z++) {
            int n = sc.nextInt();
            int x = sc.nextInt();
            int y = sc.nextInt();
            int arr[] = sc.readArray(n);
            solve(arr,x,y);
        }
    }

    private static void solve(int[] days, int a, int b) {
        outer:
        for (int i = 0; i < days.length; i++) {
            for (int j = 1; j <= a && i-j>=0;j++)
                if (days[i-j]<=days[i])
                    continue outer;

            for (int j = 1; j <= b && i +j <days.length; j++)
                if (days[i+j]<=days[i])
                    continue outer;

            out.println(i+1);
            return;
        }
        out.println("0");
    }
}


