#include<bits/stdc++.h>
using namespace std;
struct csxs
{
long long sl,fs,bh;
}xs[210000],xs1[105000],xs2[105000];
bool cmp(csxs a1,csxs a2)
{
if(a1.sl==a2.sl)
return a1.bh<a2.bh;
return a1.sl>a2.sl;
}
int main()
{
int n,r,q;
scanf("%d%d%d",&n,&r,&q);
for(int i=1;i<=n*2;i++)
{
scanf("%lld",&xs[i].fs);
}
for(int i=1;i<=n*2;i++)
{
scanf("%lld",&xs[i].sl);
xs[i].bh=i;
}
sort(xs+1,xs+2*n+1,cmp);
for(int i=1;i<=r;i++)
{
for(int i=1;i<=2*n;i+=2)
{
if(xs[i].sl>xs[i+1].sl)
{
xs[i].fs++;
xs1[(i+1)/2]=xs[i];
xs2[(i+1)/2]=xs[i+1];
}
else
{
xs[i+1].fs++;
xs1[(i+1)/2]=xs[i+1];
xs2[(i+1)/2]=xs[i];
}
}
int x1=1,x2=1;
while(x1<=n||x2<=n)
{
if(x1>n)
{
while(x2<=n)
{
xs[x1+x2-1]=xs2[x2];
x2++;
}
}
else if(x2>n)
{
while(x1<=n)
{
xs[x1+x2-1]=xs1[x1];
x1++;
}
}
else if(xs1[x1].fs>xs2[x2].fs)
{
xs[x1+x2-1]=xs1[x1];
x1++;
}
else if(xs1[x1].fs==xs2[x2].fs&&xs1[x1].bh<xs2[x2].bh)
{
xs[x1+x2-1]=xs1[x1];
x1++;
}
else
{
xs[x1+x2-1]=xs2[x2];
x2++;
}
}
}
cout<<xs[q].bh;
return 0;
}