#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;
}