#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
const uint32_t MAX_N = 3000000;
void Sort(uint32_t n, uint32_t k, uint32_t* v) {
if(n < 2)
return;
uint32_t pivot = v[rand() % n];
uint32_t begin = 0, end = n - 1;
while(v[begin] < pivot)
++begin;
while(v[end] > pivot)
--end;
while(begin < end) {
uint32_t aux = v[begin];
v[begin] = v[end];
v[end] = aux;
do
++begin;
while(v[begin] < pivot);
do
--end;
while(v[end] > pivot);
}
if(k <= end)
Sort(end + 1, k, v);
else
Sort(n - end - 1, k - end - 1, v + end + 1);
}
uint32_t v[MAX_N];
int main() {
FILE* fin = fopen("sdo.in", "r");
FILE* fout = fopen("sdo.out", "w");
srand(time(nullptr));
uint32_t n, k;
fscanf(fin, "%u%u", &n, &k);
for(uint32_t i = 0; i < n; ++i)
fscanf(fin, "%u", v + i);
Sort(n, k, v);
fprintf(fout, "%u\n", v[k]);
fclose(fin);
fclose(fout);
return 0;
}