#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int a[N],k,n;
void solve(){
deque<int> dq;
for(int i=1;i<=k;i++){
if(dq.empty()) {
dq.push_back(i);
continue;
}
while(!dq.empty()&&a[dq.back()]<a[i]){
dq.pop_back();
}
dq.push_back(i);
}
vector<int> res;
res.push_back(dq.front());
for(int i=2;i<=n-k+1;i++){
if(dq.front()==i-1) dq.pop_front();
while(!dq.empty()&&a[dq.back()]<a[i+k-1]){
dq.pop_back();
}
dq.push_back(i+k-1);
res.push_back(dq.front());
}
for(int i:res){
cout<<a[i]<<" ";
}
return;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
solve();
return 0;
}