#include<stdio.h>
#include<stdlib.h>
struct node{
int neng;
int fen;
int n;
}a[1001000],b[1000100];
int cmp(const void *a,const void *b){
int ta,tb;
ta=((struct node *)a)->fen;
tb=((struct node *)b)->fen;
if(ta==tb){
return ((struct node *)a)->n-((struct node *)b)->n;
}else{
return tb-ta;
}
}
void merge(int l,int r){
if(l>=r){
return ;
}
int mid=(l+r)/2;
merge(l,mid);
merge(mid+1,r);
int p=l,q=mid+1;
int pb=l;
while(p<=mid && q<=r){
if(a[p].fen >a[q].fen ){
b[pb++]=a[p++];
}else if(a[p].fen <a[q].fen ){
b[pb++]=a[q++];
}else{
if(a[p].n > a[q].n ){
b[pb++]=a[q++];
}else{
b[pb++]=a[p++];
}
}
}
if(p<=mid){
b[pb++]=a[p++];
}
if(q<=r){
b[pb++]=a[q++];
}
for(int i=l;i<=r;i++){
a[i]=b[i];
}
}
int main(){
int n,r,q;
scanf("%d %d %d",&n,&r,&q);
n*=2;
int i;
for(i=1;i<=n;i++){
scanf("%d",&a[i].fen );
a[i].n = i;
}
for(i=1;i<=n;i++){
scanf("%d",&a[i].neng );
}
qsort(&a[1],n,sizeof(a[1]),cmp);
for(i=1;i<=r;i++){
int j;
for(j=1;j<n;j+=2){
if(a[j].neng > a[j+1].neng ){
a[j].fen++;
}else{
a[j+1].fen++ ;
}
}
merge(1,n);
}
printf("%d",a[q].n);
return 0;
}