#include<bits/stdc++.h>
using namespace std;
struct cmptor
{
int tag; //表示序号。
int init; //表示初始值。
int cap; //能力值。
}cg[1000000];
bool cmp(cmptor a,cmptor b)
{
if(a.init==b.init)return a.tag<b.tag; //序号小的在前。
else return a.init>b.init; //初始值大的在前。
}
int main()
{
int N=0,R=0,Q=0; //比赛组,比赛轮次,名次。
scanf("%d%d%d",&N,&R,&Q);
for(int i=0;i<2*N;i++)
{
scanf("%d",&cg[i].init); //输入数值,以及初始化序号。
cg[i].tag=i+1;
}
for(int i=0;i<2*N;i++)
{
scanf("%d",&cg[i].cap);
}
stable_sort(cg,cg+2*N,cmp); //稳定排序保证值相同时不交换相对次序,速度比sort更快。
while(R) //每轮比赛根据能力值决定分数相近的选手谁得分。
{
for(int i=0;i<2*N;i+=2)
{
if(cg[i].cap>cg[i+1].cap)cg[i].init+=1;
else cg[i+1].init+=1;
}
stable_sort(cg,cg+2*N,cmp);//比完后根据分数再次排序,方便下一轮排序。
R--;
}
printf("%d",cg[Q-1].tag); //输出所求名次对应的序号。
return 0;
}