import java.util.Scanner;
import java.util.PriorityQueue;
public class Q1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner read = new Scanner(System.in);
		int n = read.nextInt();
		int x = read.nextInt();
		int y = read.nextInt();
		int tot = x+y+1;
		int cur = 0;
		int[] store = new int[n];
		int point = 0;
		int limit = 0;
		int wor = 0;
		int GlobalMin = Integer.MAX_VALUE;
		if(tot>n) {
			tot = n;
			limit = 1;
		}
		PriorityQueue<Integer> q = new PriorityQueue<>();
		for(int i = 0 ; i < tot;i++) {
			int temp = read.nextInt();
			q.add(temp);
			store[i] = temp;
			if(temp<GlobalMin) {
				GlobalMin =  temp;
				wor = i;
			}
			
		}
		if(wor<x) {
			limit=1;
		}
		int flag = 0;
		if(limit==1) {
			System.out.println(wor+1);
		}
		else  {
			if(store[x]==q.peek()) {
			flag = 1;
			System.out.println(x+1);
			}
		

		for(int i = tot;i<n;i++) {
			int temp = read.nextInt();
			store[i] = temp;
			if(flag==0) {
				q.remove(store[point]);
				q.add(temp);
				if(store[point+x+1]==q.peek()) {
					flag = 1;
					System.out.println(point+1+x);
				}
				point++;
			}
		}
		
		if(flag==0) {
			int ind = 0;
			int min = Integer.MAX_VALUE;
			for(int i = n-y-1;i<n;i++) {
				int val = store[i];
				if(val<min) {
					min = val;
					ind = i;
				}
			}
			System.out.println(ind+1);
		}}
	}

}