#include <iostream>
#include <vector>

using namespace std;

bool b[200000];

main ()

{
    int n,k;

    cin >> n; cin >>k;

    int a[200000];

    bool p = true;

    for (int i=0; i<n; i++)

        {  cin >> a[i];  if (a[i]!=1) { if (a[i]!=0) p=false;       } }


   if (p==true)
   {



    for (int i=0; i<n; i++)
    {
        if (k==0) break;

        if (a[i]==1) { b[i]=true; k--;}

        if (k==0) break;
    }


    if (k!=0)
    for (int i=0; i<n; i++)
    {
        if (k==0) break;

        if (a[i]==0) { b[i]=true; k--;}

        if (k==0) break;
    }
        for (int i=0; i<n; i++)
            if (b[i]==false) cout << a[i] << " ";

   }

   else



   if (k==1)
   {

        vector <long long> a1;

        for (int i=0; i<n; i++)
            a1.push_back(a[i]);



       bool g = false;
       for (int i=1; i<n; i++)
       {
           if (a1[i]<a1[i-1]) { g=true; a1.erase(a1.begin()+i-1); }
           if (g==true) break;

       }

       if (g==false)
       for (int i=1; i<n; i++)
           {


           if (a1[i]==a1[i-1])
           {
               int m = 1; int in = i;
               for (int j=i; j<n; j++)
               {
                   if (a1[j]>m) { m=a1[j]; in=j; }
               }
              g=true;
              a1.erase(a1.begin()+in);

           }
           if (g==false)
           {
              int m = 1; int in = i;
               for (int j=i; j<n; j++)
               {
                   if (a1[j]>m) { m=a1[j]; in=j; }
               }
              a1.erase(a1.begin()+in);
              g=true;
           }
           if (g==true) break;
       }



       for (int64_t i=0; i<a1.size(); i++)
         cout << a1[i] << " ";
   }

}