#include <bits/stdc++.h>
using namespace std;
const int N=2e7+2;
deque<int> q;
int a[N],d[N];
signed main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
puts("0");
q.push_front(0);
for(int i=1;i<=n-1;i++){
if(a[i]>=a[q.back()]){
if(a[q.front()]==0) q.pop_front();
q.push_back(i);
}
else{
while(a[q.back()]>a[i]) q.pop_back();
q.push_back(i);
}
if(i-q.front()>=m) q.pop_front();
printf("%d\n",a[q.front()]);
}
return 0;
}