#include <bits/stdc++.h>

using namespace std;

int res[500010];
int a[500010];
int br = 0;
int maxEl = INT_MAX;
void rek(int l, int d, int k, int minimum)
{
    if(k == 0) return;
    int mini = maxEl;
    int ind = 0;
    int lokMin = maxEl;
    for(int i = l; i <= d - k + 1; i++)
    {
        if(a[i] < mini)
        {
            mini = a[i];
            ind = i;
            lokMin = maxEl;
        }
        else lokMin = min(lokMin, a[i]);
    }
    res[br++] = min(mini, minimum);
    rek(d - k + 2, d, k - 1, lokMin);
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, k;
    cin >> n >> k;
    for(int i = 0; i < n; i++)
        cin >> a[i];

    rek(0, n-1, n-k, maxEl);
    for(int i = 0; i < n-k; i++) cout << res[i] << " ";

    return 0;
}