#include <bits/stdc++.h>

using namespace std;

int n;
int k;
int a[500005];
vector<pair<pair<int,int>,int> > intervali;
bool obrisano[500005];
//0-rastuci
//1-opadajuci
//2-neutralni
vector<int> ve;
int l,r;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cerr.tie(0);

    cin >> n >> k;

    for(int i=1;i<=n;i++)
    {
        cin >> a[i];
    }

    if(n==1)
    {
       cout << a[1];
       return 0;
    }

    int left=k;

    int ind2;

    int prev;
    int granica;
    int nxt;

    int l=1;
    int r=2;


    while(left>0)
    {
        //cout << l << " " << r << "\n";

        if(a[r]>a[l])
        {
            //cout << "ovde 1" << "\n";
            prev=l;
            granica=r;
            while(r<=n && a[r]>=a[prev])
            {
                prev=r;
                r++;
            }

            //cout << r << " " << granica << "\n";

            for(int i=r-1;i>=granica && left>0;i--)
            {
                obrisano[i]=true;
                i--;
                left--;
            }
        }
        else
        {
            nxt=r;
            while(nxt<=n && a[l]>=a[nxt] && left>0)
             {
                 obrisano[l]=true;
                 l=nxt;
                 nxt++;
                 left--;
             }
             r=nxt;
        }
    }


    for(int i=1;i<=n;i++)
    {
        if(!obrisano[i]) cout << a[i] << " ";
    }

    return 0;
}