#include<iostream>
#include<cstdlib>
using namespace std;
void SwAp(int &a,int &b){
int tmp=a;
a=b;
b=tmp;
}
int FindKthLargest(int *num,int k,int left,int right){
int base=num[left];//基准数
int L=left,R=right;
while(1){
while((left<=right)&&(base<=num[left])) left++;
while((left<right)&&base>num[right]) right--;
if(left<right){
SwAp(num[left],num[right]);
}else break;
}
SwAp(num[left-1],num[L]);
if((left-L-1)>=k) return FindKthLargest(num,k,L,left-2);
else if((left-L-1)<k-1) return FindKthLargest(num,k-(left-L-1)-1,left,R);
else return base;
}
int main(){
int N,k;
while(cin>>N>>k){
int *num=(int *)malloc(N*sizeof(int));
for(int i=0;i<N;i++){
cin>>num[i];
if(i+1>=k){
int result=FindKthLargest(num,k,0,i);
cout<<result<<endl;
}
}
free(num);
}
return 0;
}

