
#include<bits/stdc++.h>
using namespace std;
const int maxn = 200005;
int N, R, Q, a[maxn][4], b[maxn][4];
void merge(int p, int q, int r) {
int i, x, y;
x = p;
y = q + 1;
i = p;
while (x <= q && y <= r) {
if (a[x][3] > a[y][3]) {
b[i][1] = a[x][1];
b[i][2] = a[x][2];
b[i][3] = a[x][3];
x++;
i++;
} else if (a[x][3] == a[y][3]) {
if (a[x][1] < a[y][1]) {
b[i][1] = a[x][1];
b[i][2] = a[x][2];
b[i][3] = a[x][3];
x++;
i++;
} else {
b[i][1] = a[y][1];
b[i][2] = a[y][2];
b[i][3] = a[y][3];
y++;
i++;
}
} else {
b[i][1] = a[y][1];
b[i][2] = a[y][2];
b[i][3] = a[y][3];
y++;
i++;
}
}
while (x <= q) {
b[i][1] = a[x][1];
b[i][2] = a[x][2];
b[i][3] = a[x][3];
i++;
x++;
}
while (y <= r) {
b[i][1] = a[y][1];
b[i][2] = a[y][2];
b[i][3] = a[y][3];
i++;
y++;
}
for (int k = p; k <= r; k++) {
a[k][1] = b[k][1];
a[k][2] = b[k][2];
a[k][3] = b[k][3];
}
}
void merge_sort(int l, int r) {
if (l == r) return;
int mid = (l + r) / 2;
merge_sort(l, mid);
merge_sort(mid + 1, r);
merge(l, mid, r);
}
int main() {
scanf("%d%d%d", &N, &R, &Q);
for (int i = 1; i <= 2 * N; i++) {
a[i][1] = i;
scanf("%d", &a[i][3]);
}
for (int i = 1; i <= 2 * N; i++) {
scanf("%d", &a[i][2]);
}
while (R) {
memset(b, 0, sizeof(b));
merge_sort(1, 2 * N);
for (int i = 1; i <= 2 * N - 1; i += 2) {
if (a[i][2] > a[i + 1][2]) a[i][3]++;
else a[i + 1][3]++;
}
R--;
}
memset(b, 0, sizeof(b));
merge_sort(1, 2 * N);
cout << a[Q][1] << endl;
return 0;
}