#include<iostream>
using namespace std;
typedef struct Node
{
int number;
long long score;
long long power;
};
void Sortarray(Node* arr, Node* brr,int l,int r)
{
if (l >= r)return;
int middle = (r - l) / 2 + l;
int p = l; int q = middle+1;
int index = 0;
while (p<=middle && q <=r)
{
if (arr[p].score != arr[q].score)
{
if (arr[p].score > arr[q].score)
{
brr[index++] = arr[p];
p++;
}
else
{
brr[index++]=arr[q];
q++;
}
}
else
{
if (arr[p].number < arr[q].number)
{
brr[index++] = arr[p];
p++;
}
else
{
brr[index++] = arr[q];
q++;
}
}
}
while (p <=middle)
{
brr[index++] = arr[p];
p++;
}
while (q <=r)
{
brr[index++] = arr[q];
q++;
}
for (int i = 0; i < index; i++)
{
arr[l+i].number = brr[i].number;
arr[l+i].power = brr[i].power;
arr[l+i].score = brr[i].score;
}
return;
}
void _sort_arr(Node* arr, Node* temp, int l, int r)
{
if (l >= r)return;
int mid = (r - l) / 2 + l;
_sort_arr(arr, temp, l, mid);
_sort_arr(arr, temp, mid+1, r);
Sortarray(arr, temp, l, r);
}
int main()
{
int N, R, Q;
cin >> N >> R >> Q;
Node* arr = new Node[2 * N];
Node* brr = new Node[2 * N];
for (int i = 0; i < 2 * N; i++)
{
arr[i].number = i + 1;
cin >> arr[i].score;
}
for (int i = 0; i < 2 * N; i++)
{
cin >> arr[i].power;
}
while (R--)
{
_sort_arr(arr, brr, 0, N*2-1);
for (int i = 0; i < 2 * N; i += 2)
{
if (arr[i].power > arr[i + 1].power)
{
arr[i].score++;
}
else
{
arr[i + 1].score++;
}
}
}
_sort_arr(arr, brr, 0, N * 2 - 1);
cout << arr[Q - 1].number << endl;
return 0;
}