//Dat un vector de n elemente, sa se afle al k-le minim din vector
package curs5;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
class StatisticiDeOrdine {
private int A[];
private int dim;
private int k;
private int valoare;
private void creare() {
try {
Scanner sc=new Scanner(new File("sdo.in"));
dim=sc.nextInt();
k = sc.nextInt();
A=new int[dim + 1];
for(int i = 1; i <= dim; i++)
A[i]=sc.nextInt();
sc.close();
} catch(FileNotFoundException ex) {
System.out.println("Fisierul nu a fost gasit!");
ex.printStackTrace();
}
}
private void quicksort(int p, int u) {
if(p < u){
int m = partitie(p, u);
if(m == k){
valoare = m;
}
if(k < m)
quicksort(p, m);
else if(k > m) quicksort(m + 1, u);
}
}
private int partitie(int p, int u) {
int x = A[p];
int i = p;
for(int j = i+1; j <= u; j++) {
if(A[j] < x) {
i++;
int aux = A[i];
A[i] = A[j];
A[j] = aux;
}
}
int aux = A[p];
A[p] = A[i];
A[i] = aux;
return i;
}
public static void main(String args[]) {
try {
FileWriter fWriter = new FileWriter ("sdo.out");
PrintWriter pWriter = new PrintWriter (fWriter);
StatisticiDeOrdine obj = new StatisticiDeOrdine();
obj.creare();
obj.quicksort(1, obj.dim);
pWriter.print(obj.A[obj.valoare]);
pWriter.close();
} catch(FileNotFoundException ex) {
System.out.println("Fisierul nu a fost gasit!");
ex.printStackTrace();
}
catch(IOException e) {
System.out.println("Eroare!");
e.printStackTrace();
}
}
}