#include <ctime>
#include <stdio.h>
#include <stdlib.h>
#define MAXN 3000000
int v[MAXN+1];
void swap(int *a, int *b){
int aux = *a;
*a=*b;
*b=aux;
}
int pivot(int *v, int a, int b, int pi){
int i=a, j=b;
while(1){
while(v[i]<pi)
i++;
while(v[j]>pi)
j--;
if(i>=j){
return j;
}
swap(&v[i], &v[j]);
i++;
j--;
}
}
int quickselect(int *v, int k, int a, int b){
if(a==b)
return v[a];
int pi=pivot(v, a, b, v[a+rand()%(b-a+1)]);
if(k<=pi){
return quickselect(v, k, a, pi);
}
return quickselect(v, k, pi+1, b);
}
int main()
{
srand(time(NULL));
int n, k;
FILE *fin, *fout;
fin=fopen("sdo.in", "r");
fscanf(fin, "%d%d\n", &n, &k);
for(int i=0; i<n; i++){
fscanf(fin, "%d", &v[i]);
}
fclose(fin);
fout=fopen("sdo.out", "w");
fprintf(fout, "%d\n", quickselect(v, k-1, 0, n-1));
fprintf(fout, "\n");
fclose(fout);
return 0;
}