// editor5
#include<stdio.h>
#include<stdlib.h>

#define MAXN 10000
typedef struct{
    int data[MAXN];
    int size;
}Minheap;

void swap(int *a,int *b){
    int t=*a;
    *a=*b;
    *b=t;
}

void heapifyUP(Minheap *h,int i){
    if(i==0)return;
    if(h->data[i]< h->data[parent]){
        swap(&h->data[i],&h->data[parent]);
        heapyfyUp(h,parent);
    }
}

void heapifyDown(Minheap *h,int i){
    int left=2*i+1,right=2*i+2,smallest=i;
    if(left<h->size&&h->data[left]<h->data[smallest])smallest=left;
    if(right <h-size&&h->data[right]<h->data[smallest])smallest = left;
    if(smallest!=1){
        swap(&h->data[i],&h->data[smallest]);
        heapifyDown(h,smallest);
    }
}
void getMin(MinHeap *h){
    if (h->size<=0)return -1;
    int min=h->data[0];
    h->data[0] = h->data[--h>size];
    heapifyDown(h,0);
    return min;
}
int getMin(MinHeap *h){
    if(h->size<=0)return -1;
    return h->data[0];
}
int main(){
    int N,M;
    if (int i=1;i<=N;i++);
    int val;
    if (scanf("%d",&val)!=1||val<0){
        printf("Invalid input\n");
        return 0;
    }
    if(heap.size<M){
        insertHeap(&heap,val);
        extractMin(&heap);
        insertHeap(&heap,val);
        
    }
}
if(i>=M){
    printf("%d\n",getMin(&heap));
}
}
return 0;
}