#include <bits/stdc++.h>

using namespace std;

int N, K;
long long A[500005]={-1};
int testPrimer=-1;
bool jedannula=true;
long long C[500005]={-1};

void Resi(int ind1,int ind2,int k){
    int m=INT_MAX;
    int index=-1;
    //cout<<ind1<<" "<<ind2<<" "<<k<<endl;
    if(ind2>=N-K)
        return;
    for(int i=ind1;i<N;i++){
        if(k==0){
            C[ind2]=A[i];
            Resi(i+1,ind2+1,k);
            break;
        }
        else if((i-ind1)<=k&&A[i]<m){
            m=A[i];
            index=i;
        }
        else if((i-ind1)>k){
            C[ind2]=m;
            Resi(index+1,ind2+1,k-(index-ind1));
            break;
        }
        if(i==N-1||m==0){
            C[ind2]=m;
            Resi(index+1,ind2+1,k-(index-ind1));
            break;
        }


    }


}
void PrviTestPrimer(){
    long long B[N-K]={-1};

    for(int i=0;i<N-K;i++){
        B[i]=A[i];
    }
    int ind=0;
    bool manji=false;
    for(int i=0;i<N-1;i++){
        for(int j=0;j<N;j++){
            if(j!=i){
                if(manji)
                {
                    B[ind]=A[j];
                    //cout<<A[j]<<" "<<B[ind]<<endl;
                    ind++;
                }
                else if(A[j]<B[ind]){
                    manji=true;
                    //cout<<A[j]<<" "<<B[ind]<<endl;
                    B[ind]=A[j];
                    //cout<<A[j]<<" "<<B[ind]<<endl;
                    ind++;
                }
                else if(A[j]==B[ind]){
                    ind++;
                }
                else
                {
                    ind=0;
                    break;
                }

            }
        }
        manji=false;
        ind=0;
    }
    for(int i=0;i<N-K;i++)
        cout<<B[i]<<" ";
}

void DrugiTestPrimer(){
    long long B[N-K]={-1};
    int ind=0;
    int i=0;
    int k=K;
    while(k>0&&ind<(N-K)){
        if(A[i]==1){
            k--;
        }
        else{
            B[ind]=A[i];
            ind++;
        }
        i++;
    }
    for(int j=ind,l=i;j<N-K&&l<N;j++,l++){
        B[j]=A[l];
    }

    for(int i=0;i<N-K;i++)
        cout<<B[i]<<" ";
}

void TreciTestPrimer(){
    Resi(0,0,K);
    //cout<<N<<" "<<K<<endl;
    for(int i=0;i<N-K;i++)
        cout<<C[i]<<" ";
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin>>N>>K;
    for(int i=0;i<N;i++){
        cin>>A[i];
        if(A[i]!=0&&A[i]!=1)
            jedannula=false;
    }
    if(K==1)
        PrviTestPrimer();
    else if(jedannula)
        DrugiTestPrimer();
    else
        TreciTestPrimer();

    return 0;
}