#include<stdio.h>
#include<iostream>
#include<queue>
using namespace std;
int n,k,r;
struct node{
int id;
int num;
};
deque<node>q;
int main() {
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%d",&r);
node tmp;
tmp.id=i;tmp.num=r;
if(r<=q.back().num){
q.push_back(tmp);
}
else{
while(r>=q.back().num&&!q.empty()){
q.pop_back();
}
q.push_back(tmp);
}
while(q.front().id<=i-k){
q.pop_front();
}
if(i>=k){
cout<<q.front().num<<endl;
}
}
return 0;
}