#include <bits/stdc++.h>
#include <stdlib.h>
using namespace std;
struct dd {
int w;
int s;
int p;
} pe[200010];
queue<dd>win, los, k;
bool cmp(dd x, dd y) {
if (x.s > y.s) {
return true;
}
if (x.s == y.s && x.p < y.p ) {
return true;
}
return false;
}
int n = 0, r, q, a;
int main() {
cin >> n >> r >> q;
a = 2 * n;
for (int i = 1; i <= a; i++) {
cin >> pe[i].s;
pe[i].p = i;
}
for (int i = 1; i <= a; i++) {
cin >> pe[i].w;
}
sort(pe + 1, pe + a + 1, cmp);
for (int i = 1; i <= r; i++) {
for (int j = 2; j <= a; j += 2) {
if ((pe[j].w > pe[j - 1].w)) {
pe[j].s++;
win.push(pe[j]);
los.push(pe[j - 1]);
}
if (pe[j - 1].w > pe[j].w) {
pe[j - 1].s++;
los.push(pe[j]);
win.push(pe[j - 1]);
}
}
while (!win.empty() && !los.empty()) {
if (win.front().s > los.front().s) {
k.push(win.front());
win.pop();
}
if (win.front().s < los.front().s) {
k.push(los.front());
los.pop();
}
if (win.front().s == los.front().s) {
if (win.front().p > los.front().p) {
k.push(los.front());
los.pop();
} else {
k.push(win.front());
win.pop();
}
}
}
while (!win.empty()) {
k.push(win.front());
win.pop();
}
while (!los.empty()) {
k.push(los.front());
los.pop();
}
int aa = 1;
while (!k.empty()) {
pe[aa++] = k.front();
k.pop();
}
}
cout << pe[q].p ;
}