#include <bits/stdc++.h>

using namespace std;

long long br0,br1;
long c[200001];

int main()
{
    long n,k;
    scanf("%ld",&n);
    long long* a=(long long*)malloc(sizeof(long long)*(n+2));
    scanf("%ld",&k);
    long f=0,i;
    for (i=0;i<n;i++)
    {
        scanf("%lld",&a[i]);
        if (a[i]==1) ++br1;
        if (a[i]==0) ++br0;
        if (a[i]!=1 && a[i]!=0) f=1;
    }
    if (f==0)
    {
        if (k>=br1)
        {
            for (i=0;i<n-k;i++)
                printf("0 ");
        }
        else
        {
            for (i=0;i<n;i++)
            {
                if (a[i]==1 && k>0) { --k; continue; }
                printf("%lld ",a[i]);
            }
        }
        return 0;
    }
    else
    {
        i=0;
        long j,u=k;
        while (k>0 && i<n)
        {
            long long mn;
            long l;
            long d=i+k;
            if (d>=n) d=n-1;
            for (j=i;j<=d;j++)
            {
                if (j==i || a[j]<mn) { mn=a[j]; l=j; }
            }
            c[l]=1;
            k=k-l+i;
            i=l+1;
        }
        if (k<=0)
        {
            for (j=0;j<i;j++)
            {
                if (c[j]==1) printf("%lld ",a[j]);
            }
            for (j=i;j<n;j++)
                printf("%lld ",a[j]);
        }
        else
        {
            long p=0;
            for (j=0;j<n;j++)
            {
                if (p==n-u) break;
                if (c[j]==1) printf("%lld ",a[j]);
                ++p;
            }
        }
        return 0;
    }
    return 0;
}