#include <fstream>
#include <algorithm>
#include <ctime>
#define NMAX 3000001
using namespace std;
int v[NMAX];
int partitionare( int st, int dr) {
int i, j;
int pivot = v[st + (rand()%( dr - st + 1 ))];
i = st;
j = dr;
while( i < j ) {
while( v[i] < pivot )
i ++;
while( v[j] > pivot )
j --;
if( i < j )
swap(v[i],v[j]);
}
return j;
}
void select( int st, int dr, int k ) {
if( st == dr )
return ;
int poz = partitionare(st,dr);
int length = poz - st + 1;
if( length >= k )
select(st,poz,k);
else
select(poz+1,dr,k-length);
}
int main() {
ifstream fin("sdo.in");
ofstream fout("sdo.out");
int i, n, k;
srand(time(NULL));
fin>>n>>k;
for( i = 1; i <= n; i ++ )
fin>>v[i];
select(1,n,k);
fout<<v[k];
return 0;
}