#include <fstream>
#include <algorithm>
using namespace std;
int n,sct,a[3000005],m[3000005];
ifstream fin("sdo.in");
ofstream fout("sdo.out");
void read()
{
fin>>n>>sct;
for(int i=0;i<n;i++)
fin>>a[i];
}
int part(int a[],int p,int q,int x)
{
int i=p-1;
for(int j=p;j<q;j++)
if(a[j]<=x)
{
i++;
swap(a[i],a[j]);
}
a[i]=x;
return i;
}
int find_median(int a[],int p,int q,int pz)
{
sort(a+p,a+q);
return a[pz];
}
int select(int a[],int p,int q,int k)
{
int s=0,i,r,k1,k2;
int n = q-p;
if(q-p<=5)
return find_median(a,p,q,p+k);
for(i=0;i<n/5;i++)
{
m[i]=find_median(a,5*i,5*(i+1),p+2);
s++;
}
m[s]=find_median(a,5*i,n,p+(5*i+n)/2);
r=select(m,0,s+1,(s+1)/2);
r=part(a,p,q,r);
k1=r-p;
if(k==k1)
return a[k];
else
if(k<k1)
return select(a,p,k1,k);
else
return select(a,k1+1,q,k-k1-1);
}
int main()
{
read();
//fout<<part(a,0,n,a[0])<<"\n";
fout<<select(a,0,n-1,sct-1);
return 0;
}