#include<iostream>
#include<algorithm>
using namespace std;
int n,r,q,tt,i;
struct player{
int index,ex,score;
}p[200010];
player A[100001];
player B[100001];
bool cmp(player a,player b)
{
if(a.score == b.score) return a.index<b.index;
else return a.score>b.score;
}
void MSort()
{
int i=1,j=1,k=1;
while(i<=n && j<=n)
{
if(A[i].score > B[j].score || (A[i].score == B[j].score && A[i].index < B[j].index))
{
p[k].score = A[i].score;
p[k].ex = A[i].ex;
p[k++].index = A[i++].index;
}
else{
p[k].score = B[j].score;
p[k].ex = B[j].ex;
p[k++].index = B[j++].index;
}
}
while(i<=n)
{
p[k].score = A[i].score;
p[k].ex = A[i].ex;
p[k++].index = A[i++].index;
}
while(j<=n)
{
p[k].score = B[j].score;
p[k].ex = B[j].ex;
p[k++].index = B[j++].index;
}
}
int main()
{
cin>>n>>r>>q;
for(i=1;i<=2*n;i++) cin>>p[i].score;
for(i=1;i<=2*n;i++)
{
cin>>p[i].ex;
p[i].index=i;
}
sort(p+1,p+1+2*n,cmp);
while(r!=0)
{
r--;
tt=1;
for(i=1;i<=n;i++)
{
if(p[2*i-1].ex>p[2*i].ex)
{
A[tt].score=p[2*i-1].score+1;
A[tt].index=p[2*i-1].index;
A[tt].ex=p[2*i-1].ex;
B[tt].score=p[2*i].score;
B[tt].index=p[2*i].index;
B[tt].ex=p[2*i].ex;
tt++;
}
else
{
A[tt].score=p[2*i-1].score;
A[tt].index=p[2*i-1].index;
A[tt].ex=p[2*i-1].ex;
B[tt].score=p[2*i].score+1;
B[tt].index=p[2*i].index;
B[tt].ex=p[2*i].ex;
tt++;
}
}
MSort();
//for(i=1;i<=2*n;i++) cout<<p[i].score<<' ';
//cout<<endl;
}
cout<<p[q].index;
return 0;
}