#include<bits/stdc++.h>
using namespace std;
int a[3000010];
int mmin[3000010][27];
int n,m,l,r;
int v;
void rmq(){
for(int j=1;j<=20;++j){
for(int i=1;i<=n;++i){
if(i+(1<<j)-1<=n){
mmin[i][j]=min(mmin[i][j-1],mmin[i+(1<<(j-1))][j-1]);
}
}
}
}
int mmmin(int ll,int rr){
int x=log(rr-ll+1)/log(2);
return (min(mmin[ll][x],mmin[rr+1-(1<<x)][x]));
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;++i){
cin>>v;
a[i]=v;
mmin[i][0]=v;
}
rmq();
for(int i=1;i<=n;++i){
if(i==1 && i<=m ){cout<<"0"<<endl;}
else if(i<=m)cout<<mmmin(1,i-1)<<endl;
else cout<<mmmin(i-m,i-1)<<endl;
}
return 0;
}