#include<bits/stdc++.h>
using namespace std;
int n,k,q,s;
struct st{
int num,grade,stength;
};
st a[444444],b[222222],c[222222];
int read(){
int x=0;
char s=getchar();
while(s>'9'||s<'0')
s=getchar();
while(s<='9'&&s>='0'){
x=x*10+s-'0';
s=getchar();
}
return x;
}
bool cmp(st a1,st a2){
if(a1.grade!=a2.grade)
return a1.grade>a2.grade;
else
return a1.num<a2.num;
}
void work() {
int lb=0;
int lc=0;
int la=0;
for(int i=1; i<n*2; i+=2) {
if(a[i].stength>a[i+1].stength) {
a[i].grade++;
a[lb]=a[i];
c[lc]=a[i];
} else {
a[i].grade++;
b[lb]=a[i+1];
c[lc]=a[i];
}
}
lb=1;
lc=1;
la=1;
while(lb<=n&&lc<=n) {
if(cmp(b[lb],c[lc]))
a[la++]=b[lb++];
else
a[la++]=c[lc++];
}
while(lb<=n)
a[la++]=b[lb++];
while(lc<=n)
a[la++]=c[lc++];
}
int main() {
n=read(),k=read(),q=read();
for(int i=1;i<=n*2;i++)
a[i].num=i,a[i].grade=read();
for(int i=1;i<=n*2;i++)
a[i].stength=read();
sort(a+1,a+n*2+1,cmp);
for(int i=1;i<=k;i++)
work();
printf("%d",a[q].num+1);
return 0;
}