#include<iostream>
#include<map>
using namespace std;
int n,m;
int a[10005];
map<int,bool> can;
map<int,bool>::iterator it;
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
scanf("%d",a+i);
}
for(int _=1;_<=m;_++)
{
can.clear();
int i=n;
it=can.end();
it--;
while(it->first<a[i])
{
can[a[i]]=true;
it=can.end();
it--;
i--;
}
a[i]=can.lower_bound(a[i])->first;
can.erase(a[i]);
for(it=can.begin();it!=can.end();it++)
{
i++;
a[i]=it->first;
}
}
for(int i=1;i<=n;i++)
printf("%d ",a[i]);
return 0;
}