#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int h[N],num;
void down(int u)
{
int t=u;
if(u*2<=num&&h[t]>h[2*u])t=2*u;
if(u*2+1<=num&&h[t]>h[2*u+1])t=2*u+1;
if(u!=t)
{swap(h[u],h[t]);down(t);}
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%d",&h[i]);
num=n;
for(int i=n/2;i;i--)down(i);
while(m--)
{
printf("%d ",h[1]);
h[1]=h[num];
num--;
down(1);
}
return 0;
}