#include <bits/stdc++.h>

using namespace std;
long long a[510000],b[510000];
 /*int uporedi2(long long a[],long long niz1[],int x,long long niz2[],int b,long long i,int k,int y)
 {
     int i1=0,i2=0,kz;
     if(k>=0)
     {

     for( i1=0 ; i1 <=min(x,b);i1++)
     {
         if(niz1[i1]<niz2[i1])
         {
             return 1;
         }
         if( niz1 [i1]>niz2[i2])
         {

            return y-k+1;
         }

     }
     if(x<b)
     {
         long long d=a[i+1];
         b=0;
         while(d>0)
         {
             niz2[b]=d%10;
             d=d/10;
             b=b+1;
         }
         return uporedi2(a,niz1,x-b,niz2,b,i+1,k-1,y);
     }
     if(x=b)
        return 1;
    if(b<x)
    {
         long long d=a[i+1];
         x=0;
         while(d>0)
         {
             niz1[x]=d%10;
             d=d/10;

             x=x+1;
         }
         uporedi2(a,niz1,k,niz2,k-b,i+1,k-1,y);
    }
     }
     if(x<0)
        return 1;
 }
void uporedi(long long a[],long long n,long long k,long long b[])
{
    long long a1,b1,niz1[10],niz2[10];
    int q,b2,c,xz=0;
    int i=0;
int    d=0;
    while(k>0)
    {
        if(d>k)
        {
            d=0;
            b[xz]=a[i];
            i++;
            xz++;

        }
        if(d<=k)
        {
            a1=a[i];
            q=0;
            while(a1>0)
            {
                niz1[q]=a1%10;
                a1=a1/10;
                q++;
            }
            b2=0;
            b1=a[i+1];
             while(b1>0)
            {
                niz2[b2]=b1%10;
                b1=b1/10;
                b2++;
            }
            c= uporedi2 (a,niz1,q,niz2,b2,i+d,k,k);
            if( c==1)
            {
                d++;
            }
            else
            {
                d=0;
                i++;
                k=k-c+1;
            }


        }

    }
}*/
int uporedi(long long a[],long long n,long long k,long long b[] )
{
    long long i=0;
    long long c=0;
    while(k>0)
    {
        int x=1;
        int d=1;
        while(k>=x && i+x<n)
        {

            if(a[i]>a[x+i])
            {
                i=i+x;
                k=k-x;
                d=0;

            }
            else
                x++;
        }
        if(d==1)
        {
            b[c]=a[i];
            c++;
            i++;
        }

    }
    while(i<n)
    {
        b[c]=a[i];
        c++;
        i++;
    }
}
int main()
{
    long long n,k,i,j,t;
    cin>>n;
    cin>>k;
    for(i=0;i<n;i++)
    {
        cin>>a[i];
    }
    uporedi(a,n,k,b);
    for(i=0;i<n-k;i++)
    {
        cout<<b[i]<<" ";
    }


    return 0;
}