#include <bits/stdc++.h>
using namespace std;
const int N=2e6+10;
const int M=3e7+1;
priority_queue<int,vector<int>,greater<int> >q;
int flag[M];
int n,m;
int nums[N];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d",&nums[i]);
}
printf("0\n");
for(int i=2;i<=n;i++){
if(i>m+1){
flag[nums[i-m-1]]=1;
}
q.push(nums[i-1]);
while(flag[q.top()]){
q.pop();
}
if(!flag[q.top()])
printf("%d\n",q.top());
}
return 0;
}