#include <stdio.h>

typedef struct seiseki{
  int m; //受験者
  int n_min;
  int n_max;
  int score[];
}LIST;

typedef struct Pass{
  int gap;
  int num;
}LIST2;

void sort(int a[], int n);
void sort2(LIST2 a[],int n);

int main(void){
  LIST a[200];
  LIST2 b[200];
  int i=0;
  int l;
  int k;

  while(i<200){
    int pass=0;
    
    scanf("%d %d %d",&a[i].m,&a[i].n_min,&a[i].n_max);
    if(a[i].m == 0 && a[i].n_min == 0 && a[i].n_max == 0) break;
    
    for(l = 0; l < a[i].m ; l++){
      scanf("%d",&a[i].score[l]);
    }
    
    sort(a[i].score, l);
  
    for(k = 0; k < (a[i].n_max - a[i].n_min) ; k++){
      pass = a[i].n_max - k;
      b[k].gap = a[i].score[pass-1] - a[i].score[pass];
      b[k].num = pass;
    }
    
    sort2(b, k);
    
    int n[a[i].m];
    n[i] = b[0].num;
    
    i += 1;
  }

  for(int j = 0 ; j < i; j++){
    printf("%d\n",n[j]);
  }
  
  return 0;
}

void sort(int a[], int n){
  int i, j, temp;

  for (i = 0; i < (n - 1); i++) {
    for (j = (n - 1); j > i; j--) {
      if (a[j-1] < a[j]) {
	temp = a[j+1];
	a[j-1] = a[j];
	a[j] = temp;
      }
    }
  }
}


void sort2(LIST2 a[], int n){
  int i, j;
  LIST2 temp;

  for (i = 0; i < (n - 1); i++) {
    for (j = (n - 1); j > i; j--) {
      if (a[j-1].gap < a[j].gap) {
	temp = a[j-1];
	a[j-1] = a[j];
	a[j] = temp;
      }
    }
  }
}
