public class Main {
static int[] buff = new int[500000];
static int count = 0;
static int searchCount = 0;
static int setResult = -1;
static void merge_sort(int[] a, int left, int right) { // 그냥병합정렬
if(left < right) {
int center = (left + right) / 2;
int p = 0;
int i;
int j = 0;
int k = left;
merge_sort(a, left, center);
merge_sort(a, center + 1, right);
//1)배열의 앞부분(a[left] ~ a[center])을
//buff[0] ~ buff[center - left]에 복사합니다.
//for문이 끝날 때 p의 값은 복사한 요소의 개수 center - left + 1이 됩니다.
for(i = left; i <= center; i++) {
buff[p++] = a[i];
}
// 2)배열의 뒷부분(a[center + 1] ~ a[right])과
//buff로 복사한 배열의 앞부분 p개를 병합한 결과를 배열 b에 저장합니다.
while(i<=right && j < p) {
if(buff[j] <= a[i]) {
if(count == searchCount) {
setResult = buff[j];
}
System.out.println("현재 수 : " + buff[j]);
a[k++] = buff[j++];
count++;
}
else {
if(count == searchCount) {
setResult = a[i];
}
System.out.println("현재 수 : " + a[i]);
a[k++] = a[i++];
count++;
}
}
// 3)배열 buff에 남아있는 요소를 배열 a에 복사합니다.
while(j < p) {
if(count == searchCount) {
setResult = buff[j];
}
System.out.println("현재 수 : " + buff[j]);
a[k++] = buff[j++];
count++;
}
}
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int arrayN = Integer.parseInt(st.nextToken());
searchCount = Integer.parseInt(st.nextToken());
int[] array = new int[arrayN];
StringTokenizer st1 = new StringTokenizer(br.readLine());
for(int i = 0; i < arrayN; i++) {
array[i] = Integer.parseInt(st1.nextToken());
}
merge_sort( array, 0, arrayN-1); // 이게 진짜 병합정렬
bw.write(Integer.toString(setResult) + " ");
bw.write(Integer.toString(count));
bw.flush();
bw.close();
}
}