#include <iostream>
#include <queue>
using namespace std;
using T = pair<int, int>;
priority_queue<T, vector<T>, greater<T>> Q;
int main()
{
    cin.sync_with_stdio(false), cout.sync_with_stdio(false);
    int n, m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
    {
        if (i == 1)
            cout << 0 << '\n';
        else
        {
            while (Q.top().second < i - m)
                Q.pop();
            cout << Q.top().first << '\n';
        }
        int a;
        cin >> a;
        Q.push({a, i});
    }
    return 0;
}