#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

int niz[500000];

int main()
{
    int i, n, k, star, gotovo = 0;
    int prviraste = -1;
    int zadnjiraste = 0;
    cin >> n >> k;
    vector<int> ignorindeks;

    int samonulajedan = 1;

    for (i = 0; i < n; i++)
    {
        cin >> niz[i];

        if ((niz[i] != 0) && (niz[i] != 1))
            samonulajedan = 0;

        if (i != 0)
        {
            int test = niz[i];
            int tindex = i-1;
            if (star <= test)
            {
                zadnjiraste = i;
                if (prviraste == -1)
                    prviraste = i;
            }
            while ((!gotovo) && (star > test))
            {
                //cout << star << " > " << test << "AKa dodaj " << tindex << endl;
                ignorindeks.push_back(tindex);
                if (ignorindeks.size() == k)
                {
                    gotovo = 1;
                }
                tindex--;
                if (tindex < 0)
                    break;
                star = niz[tindex];
            }
        }

        star = niz[i];
    }

    if (!samonulajedan)
    {
        i = prviraste;
        i = zadnjiraste;
        //cout << ignorindeks.size() << ' ' << prviraste<< endl;
        while (ignorindeks.size() != k)
        {
            ignorindeks.push_back(i--);
        }
        sort(ignorindeks.begin(), ignorindeks.end());
    }
    else
    {
        ignorindeks.clear();
        i = 0;
        for (i = 0; i < n; i++)
        {
            if (niz[i] == 1)
            {
                //cout << "Dodaj " << i << endl;
                ignorindeks.push_back(i);
                if (ignorindeks.size() == k)
                    break;
            }
        };
    }

    /*cout <<"$"<<endl;
    for (int i = 0; i < ignorindeks.size(); i++)
        cout << ignorindeks[i] << " ";
    cout << endl;*/

    for (i = 0; i < n; i++)
    {
        if (!ignorindeks.empty())
        {
            if (i == ignorindeks.at(0))
            {
                ignorindeks.erase(ignorindeks.begin()+0);
                //cout << "[S " << i << ": " << niz[i] << "] ";
                continue;
            }
        }
        cout << niz[i] << ' ';
    }

    return 0;
}