#include <cstdio>
#include <iostream>
using namespace std;
const int N = 100010;
int a[N], b[N];
int solve(int *a1, int *a2, int n, int k)
{
int left1 = 0, right1 = n - 1;
int left2 = 0, right2 = n - 1;
while (left1 <= right1 && left2 <= right2)
{
int m1 = (left1 + right1) >> 1;
int m2 = (left2 + right2) >> 1;
int cnt = m1 + m2;
if (a1[m1] <= a2[m2])
{
if (cnt < k) left1 = m1 + 1;
else right2 = m2 - 1;
}
else
{
if (cnt < k) left2 = m2 + 1;
else right1 = m1 - 1;
}
}
if (left1 > right1)
{
if (left1 == 0) return a2[k - 1];
else
{
int x = a1[left1 - 1], y = a2[k - left1 - 1];
return max(x, y);
}
}
else
{
if (left2 == 0) return a1[k - 1];
else
{
int x = a2[left2 - 1], y = a1[k - left2 - 1];
return max(x, y);
}
}
}
int main()
{
int n, k;
cin >> n >> k;
for (int i = 0; i < n; i ++ ) cin >> a[i];
for (int i = 0; i < n; i ++ ) cin >> b[i];
cout << solve(a, b, n, k);
return 0;
}