#include <iostream>
#define maxN 200005
using namespace std;
int n,k,v[maxN],w1[maxN],x;
void mergesort(int st, int dr)
{
if(st < dr)
{
int m=(st+dr)/2;
mergesort(st,m);
mergesort(m+1,dr);
int i=st,j=m+1,k=0;
while(i<=m && j<=dr)
{
if(v[i]<v[j]) w1[++k]=v[i++];
else w1[++k]=v[j++];
}
while(i<=m)
w1[++k]=v[i++];
while(j<=dr)
w1[++k]=v[j++];
j=1;
for(i=st;i<=dr;i++)
v[i]=w1[j],j++;
}
}
int main()
{
cin>>n>>k;
for(int x=1;x<=n;x++)
cin>>v[x];
mergesort(1,k);
for(x=1;x<=k;x++) cout<<v[x]<<" ";
mergesort(k+1,n);
for(x=n;x>k;x--) cout<<v[x]<<" ";
return 0;
}