#include<iostream>
#include<algorithm>
using namespace std;
const int N(100005);
struct node
{
int num,score,shili;
};
node a[2*N],win[N],lose[N];
bool comp(const node &x,const node &y)
{
if (x.score!=y.score) return x.score>y.score; //分数不同,按分数排序
return x.num<y.num; //分数相同,按编号排序
}
void swiss(int n)
{
int i,j,k;
for (k=i=j=1;k<=n;k++)
if (a[2*k-1].shili>a[2*k].shili)
a[2*k-1].score++,win[i++]=a[2*k-1],lose[j++]=a[2*k];
else
a[2*k].score++,win[i++]=a[2*k],lose[j++]=a[2*k-1];
for (k=i=j=1;i<=n&&j<=n;k++)
if (comp(win[i],lose[j]))
a[k]=win[i],i++;
else a[k]=lose[j++];
while (i<=n) a[k++]=win[i++];
while (j<=n) a[k++]=lose[j++];
}
int main()
{
int n,r,q;
cin>>n>>r>>q;
for (int i=1;i<=2*n;i++) a[i].num=i;
for (int i=1;i<=2*n;i++) cin>>a[i].score;
for (int i=1;i<=2*n;i++) cin>>a[i].shili;
sort(a+1,a+2*n+1,comp);
for (int i=0;i<r;i++) swiss(n);
cout<<a[q].num<<endl;
//system("pause");
return 0;
}
/**************************************************************
Problem: 2302
User: admin
Language: C++
Result: Accepted
Time:1149 ms
Memory:6764 kb
****************************************************************/