#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
****************************************************************/