#include<fstream>
#include<iostream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int quicksort(int left, int right, long long nr[]){
long long p=nr[rand() % (right+1-left)+left];
int i=left, j=right;
while(i<=j){
while(nr[i]<p) i++;
while(nr[j]>p) j--;
if(i<j) {
swap(nr[i],nr[j]);
i++; j--;
}
return j;
}
return 0;
}
void partition(int left, int right, int k, long long nr[]){
if(left==right) return;
int q=quicksort(left, right, nr);
if(q<left) return;
int length=q-left+1;
if(k<=length) partition(left,q,k,nr);
else partition(q+1,right,k-length,nr);
}
int main(){
FILE *in=fopen("sdo.in","r"), *out=fopen("sdo.out","w");
int n, k;
fscanf(in,"%d %d",&n,&k);
long long nr[n+1];
for(int i=1;i<=n;i++) fscanf(in,"%lld",&nr[i]);
fclose(in);
srand(time(NULL));
partition(1,n,k,nr);
fprintf(out,"%lld",nr[k]);
fclose(out);
return 0;
}