#include <iostream>
#include <fstream>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
int v[3000001], n, k;
int pivot(int p, int u)
{
int cp = 0, cu = -1;
while(p < u)
{
if(v[p] > v[u])
{
int aux = v[p];
v[p] = v[u];
v[u] = aux;
//
aux = cp;
cp = -cu;
cu = -aux;
}
p += cp;
u += cu;
}
return p; //pozitia pivotului
}
void quicksort(int p, int u, int k)
{
if(p < u)
{
int piv = pivot(p, u);
if(k <= piv)
quicksort(p, piv - 1, k);
else
quicksort(piv + 1, u, k);
}
}
int main()
{
f >> n >> k;
for(int i = 1; i <= n; i++)
f >> v[i];
quicksort(1, n, k);
g << v[k];
return 0;
}
/**
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("sdo.in");
ofstream g("sdo.out");
const int NMAX = 3000001;
int v[NMAX], n, k;
int main()
{
f >> n >> k;
for(int i = 1; i <= n; i++)
f >> v[i];
nth_element(v + 1, v + k, v + n + 1);
g << v[k];
return 0;
}
*/