#include<bits/stdc++.h>
using namespace std;
struct nood {
int f,num;
} s[200005];
int sl[200005];
bool cmp(nood a,nood b) {
if(a.f==b.f)return a.num<b.num;
return a.f>b.f;
}
int n,r,c;
nood w[200005],l[200005];
void dg() {
int i=1,j=1,q=1;
while(i<=n/2&&j<=n/2) {
if(w[i].f>l[j].f||(w[i].f==l[j].f&&w[i].num<l[j].num)) {
s[q].f=w[i].f;
s[q].num=w[i].num;
i++;
q++;
} else {
s[q].f=l[j].f;
s[q].num=l[j].num;
j++;
q++;
}
}
if(i<=n/2) {
s[q].f=w[i].f;
s[q].num=w[i].num;
i++;
q++;
}
if(j<=n/2) {
s[q].f=l[j].f;
s[q].num=l[j].num;
j++;
q++;
}
}
int main() {
cin>>n>>r>>c;
n*=2;
for(int i=1; i<=n; i++) {
cin>>s[i].f;
}
for(int i=1; i<=n; i++) {
cin>>sl[i];
s[i].num =i;
}
sort(s+1,s+n+1,cmp);
for(int i=1; i<=r; i++) {
int q=1;
for(int j=1; j<=n; j+=2) {
if(sl[s[j].num]>sl[s[j+1].num]) {
s[j].f++;
w[q].f=s[j].f;
l[q].f=s[j+1].f;
w[q].num=s[j].num;
l[q].num=s[j+1].num;
q++;
} else {
s[j+1].f++;
l[q].f=s[j].f;
w[q].f=s[j+1].f;
l[q].num=s[j].num;
w[q].num=s[j+1].num;
q++;
}
}
dg();
}
cout<<s[c].num;
}