#include <cstdio>
#include <algorithm>
using namespace std;
struct peo{
int id,w,sc;
}a[200005],win[200005],lose[200005];
void f(int x){
int i = 1,j = 1,y = 1;
while(i <= x && j <= x){
if(win[i].sc > lose[j].sc){
a[y] = win[i];
i++;
y++;
}else if(win[i].sc == lose[j].sc){
if(win[i].id < lose[j].id){
a[y] = win[i];
i++;
y++;
}else{
a[y] = lose[j];
j++;
y++;
}
}else{
a[y] = lose[j];
j++;
y++;
}
}
while(i <= x){
a[y] = win[i];
i++;
y++;
}
while(j <= x){
a[y] = lose[j];
j++;
y++;
}
}
bool cmp(peo a,peo b){
if(a.sc == b.sc) return a.id < b.id;
return a.sc < b.sc;
}
int main(){
int n,r,q;
scanf("%d%d%d",&n,&r,&q);
for(int i = 1;i <= n;i++){
scanf("%d",&a[i].sc);
a[i].id = i;
}
for(int i = 1;i <= n;i++){
scanf("%d",a[i].w);
}
sort(a + 1,a + n + 1,cmp);
while(r--){
int k = 1;
for(int i = 1;i <= n - 1;i += 2){
if(a[i].w < a[i + 1].w){
a[i + 1].sc++;
win[k] = a[i + 1];
lose[k] = a[i];
k++;
}else{
a[i].sc++;
win[k] = a[i];
lose[k] = a[i + 1];
k++;
}
}
k--;
f(k);;
}
printf("%d",a[q].id);
return 0;
}