#include<stdio.h>
int n,k,len;
void HeapAdjust(int a[],int s,int m)
{
int j;
int e=a[s];
for(j=2*s;j<=m;j*=2)
{
if(j<m&&a[j]<a[j])++j;
if(e>=a[j])break;
a[s]=a[j];
s=j;
}
a[s]=e;
}
void HeapSort(int a[])
{
int i,e;
for(i=len/2;i>0;i--)
HeapAdjust(a,i,len);
for(i=len;i>1;i--)
{
e=a[1];
a[1]=a[i];
a[i]=e;
HeapAdjust(a,1,i-1);
}
}
main()
{
while(~scanf("%d%d",&n,&k))
{
len=k+1;
int a[len];
for(int i=0;i<len;i++)scanf("%d",&a[i]);
HeapSort(a);
for(int i=0;i<n-len;i++)scanf("%d",&a[k]),HeapSort(a);
for(int i=0;i<len;i++)printf("%d ",a[i]);
}
}