#include <bits/stdc++.h>
using namespace std;
const char* in = "sdo.in";
const char* out = "sdo.out";
const int NMAX = 1e6 * 3;
int N, A[NMAX], K;
inline int partitie(int Arr[NMAX], int st, int dr) {
srand(time(NULL)); //set the seed
int pivot = Arr[st + rand() % (dr - st + 1)],
i = st - 1,
j = dr + 1;
while(true) {
do{
++i;
}while(Arr[i] < pivot);
do{
--j;
}while(Arr[j] > pivot);
if(i >= j)
return j;
swap(Arr[i], Arr[j]);
}
}
inline int Sol(int Arr[NMAX], int st, int dr, int k)
{
if(st == dr)
return Arr[st]; //end process
int piv = partitie(Arr, st, dr);
int t = piv - st + 1;
if(t >= k)
return Sol(Arr, st, piv, k);
return Sol(Arr, piv + 1, dr, k - t);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
freopen(in, "r", stdin);
freopen(out, "w", stdout);
cin >> N >> K;
for(int i = 1; i <= N; ++i)
cin >> A[i];
cout << Sol(A, 1, N, K) << "\n";
return 0;
}