#include <bits/stdc++.h>
using namespace std;

int niz[1000005];
bool ozn[500005];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
   // freopen("ulaz.txt", "r", stdin);

    int n, k;
    cin>>n>>k;
    bool t = true;

    for(int i = 1; i <= n; i++)
    {
        cin>>niz[i];
        if(niz[i] > 1) t = false;
    }

    memset(ozn, true, sizeof(ozn));

    if(t)
    {
        int K = k;
        for(int i = 1; i <= n; i++)
        {
            if(niz[i] == 1 && K != 0)
            {
                ozn[i] = false;
                K--;
            }
        }

        int br = 0;

        if(K == 0)
        {
            for(int i = 1; i <= n; i++)
            {
                if(ozn[i]) cout<<niz[i]<<" ";
            }
        }
        else
        {
            for(int i = 1; i <= n; i++)
            {
                if(ozn[i])
                {
                    if(br < n - k)
                    {
                        cout<<niz[i]<<" ";
                        br++;
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
    }
    else
    {

    for(int i = n + 1; i <= n + k + 4; i++) niz[i] = -1;



    vector<int>v;

    int val = k;
    int tren_ind = 1;

    while(val != 0)
    {
       // cout<<tren_ind<<endl;
        int lokal_mini = niz[tren_ind];
        int lokal_ind = tren_ind;

        for(int i = tren_ind; i <= tren_ind + val; i++)
        {
            if(niz[i] < lokal_mini)
            {
                lokal_mini = niz[i];
                lokal_ind = i;
            }
        }

        if(tren_ind != lokal_ind)
        {
            niz[tren_ind] = -1 * lokal_ind;
        }

        val -= (lokal_ind - tren_ind);
        tren_ind = lokal_ind + 1;
    }

    for(int i = 1; i <= n; i++)
    {
        if(niz[i] >= 0) cout<<niz[i]<<" ";
        else i = (-1) * niz[i] - 1;
    } cout<<endl;
    }

    return 0;
}