#include <cstdio>
#include <vector>
#include <deque>
using namespace std;
int main()
{
int n, m, t;
vector<int> a;
scanf("%d %d", &n, &m);
for (int i = 0; i < n; i++)
{
scanf("%d", &t);
a.push_back(t);
}
puts("0");
deque<int> ans, ans_num;
ans.push_back(a[0]), ans_num.push_back(0);
for (int i = 1; i < n; i++)
{
printf("%d\n", ans.front());
while (!ans.empty() && ans_num.front() <= i - m)
ans.pop_front(), ans_num.pop_front();
if (i - m >= 0 && ans.front() == a[i])
ans.pop_front(), ans_num.pop_front();
while (!ans.empty() && ans.back() >= a[i])
ans.pop_back(), ans_num.pop_back();
ans.push_back(a[i]), ans_num.push_back(i);
}
return 0;
}