#include<iostream>
#include<algorithm>
using namespace std;
int n,r,q;
struct player{
int num,pts,abil;
}a[int(2e5+5)],win[int(1e5+5)],lose[int(1e5+5)];
bool cmp(player a,player b){
if(b.pts==a.pts)return a.num<b.num;
return a.pts>b.pts;
}
int main(){
scanf("%d%d%d",&n,&r,&q);
n*=2,q--;
for(int i=0;i<n;i++){
scanf("%d",&a[i].pts);
a[i].num=i+1;
}
for(int i=0;i<n;i++){
scanf("%d",&a[i].abil);
}
sort(a,a+n,cmp);
n/=2;
while(r--){
for(int i=0;i<n;i++){
if(a[i*2].abil<a[i*2+1].abil){
a[i*2+1].pts++;
win[i]=a[i*2+1],lose[i]=a[i*2];
}else{
a[i*2].pts++;
win[i]=a[i*2],lose[i]=a[i*2+1];
}
}
int lp=0,rp=0,k=0;
while(lp<n&&rp<n){
if(cmp(win[rp],lose[lp]))a[k++]=lose[lp++];
else a[k++]=win[rp++];
}
while(lp<n)a[k++]=lose[lp++];
while(rp<n)a[k++]=win[rp++];
}
reverse(a,a+n);
cout<<a[q].num;
return 0;
}