#include<iostream>
using namespace std;
int n;
long long data[5000031];
long long tmp[5000031];
int nums = 1;
long long read(){
long long x = 0, f = 1;
char c = getchar();
while(c < '0' || c > '9'){
if(c == '-'){
f = -1;
}
c = getchar();
}
while(c >= '0' && c <= '9'){
x = x*10+c-'0';
c = getchar();
}
return x*f;
}
void hebing(int start,int mid,int end ){
int POS1 = start;
int POS2 = mid+1;
int old = nums;
while(POS1<=mid&&POS2<=end){
if(data[POS1]>=data[POS2]){
tmp[nums++] = data[POS2++];
}else{
tmp[nums++] = data[POS1++];
}
}
while(POS2<=end){
tmp[nums++] = data[POS2++];
}
while(POS1<=mid){
tmp[nums++] = data[POS1++];
}
copy(tmp+old,tmp+nums,data+start);
return ;
}
void huafen(int start,int end){
if(start<end&&start!=0&&end!=0){
long long mid = (start+end)/2;
huafen(start,mid);
huafen(mid+1,end);
hebing(start,mid,end);
}
return;
}
int main()
{
long long k;
cin>>n>>k;
for(int i=1;i<=n;i++){
data[i] = read();
}
huafen(1,n);
cout<<data[k+1];
return 0;
}