#include <bits/stdc++.h>

using namespace std;

struct clan{
    int id;
    int a;
    bool operator<(const clan& p) const{
        if(a>p.a){
            return true;
        }
        else{
            if(a<p.a){
                return false;
            }
            else{
                if(id<p.id){
                    return false;
                }
                else{
                    return true;
                }
            }
        }
    }
};

clan b[500000];
int a[500000],br=0;
priority_queue <clan> pq;

void ispisi(int k){
    int i;
    for(i=0;i<k;i++){
        cout<<pq.top().a<<" "<<pq.top().id<<"\n";
        pq.pop();
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cerr.tie(0);
    b[0].id=-1;
    clan pom;
    int n,k,i;
    cin>>n>>k;
    for(i=0;i<n;i++){
        cin>>a[i];
    }
    i=0;
    while((k>0)&&(i<n)){
        if(pq.size()<k+1){
            pom.a=a[i];
            pom.id=i;
            pq.push(pom);
            i++;
        }
        else{
            if(pq.top().id>b[max(br-1,0)].id){
                b[br].a=pq.top().a;
                b[br].id=pq.top().id;
                br++;
            }
            else{
                k--;
            }
            pq.pop();
        }
    }
    while(pq.size()>0){
        b[br].a=pq.top().a;
        b[br].id=pq.top().id;
        br++;
        pq.pop();
    }
    for(i=0;i<n-k;i++){
        cout<<b[i].a<<" ";
    }
    return 0;
}