//快速排序找第k小
#include<bits/stdc++.h>
using namespace std;
int partition(vector<int>& p,int l,int r){
int i=l;
int j=r-1;
int t=p[r];
while(1){
while(p[i]<t){
i++;
}
while(p[j]>t&&j>l){
j--;
}
if(i>=j){
break;
}
swap(p[i],p[j]);
i++;
j--;
}
swap(p[i],p[r]);
return i;
}
int find(vector<int>& p,int l,int r,int k){
int h=partition(p,l,r);
if(h==k){
return p[k];
}
else if(h<k){
find(p,h+1,r,k);
}
else{
find(p,l,h-1,k);
}
}
int main(){
int n,k;
cin>>n>>k;
vector<int> p(n);
for(int i=0;i<n;i++){
cin>>p[i];
}
int f=find(p,0,n-1,k);
cout<< f;
}