#include <iostream>
#include <bits/stdc++.h>

using namespace std;
long long int niz[500001];
int pozmin(int i,int interval)
{
    int minimum=niz[i],poz=i,inter=interval+i-1;
    for (int j=i+1;j<=inter;j++)
    {
        if (niz[j]<minimum)
        {
            poz=j;
            minimum=niz[j];
        }
    }
    return poz;
}

int main()
{
    std::ios_base::sync_with_stdio(false);
    //ios::sync_with_stdio(true);
    int n,k,br;
    cin >> n >> k;
    br=k+1;
    for (int i=0;i<n;i++)
    {
        cin >> niz[i];
    }
    for (int d=0;d<n;)
    {
        if (br==1)break;
        int tr=pozmin(d,br);
        for (int p=d;p<tr;p++)
        {
            niz[p]=-1;
        };
        br=br-(tr-d);
        d=tr+1;
    }
    if (br!=1)
    {
        for (int g=0;g<br-1;g++)
        {
            niz[n-1-g]=-1;
        }
    }
    for (int f=0;f<n;f++)
    {
        if (niz[f]!=-1)
        {
            cout << niz[f] << " " ;
        }
    }
    return 0;
}