var
a:array [0..10001] of longint;
n,m,i,p,q:longint;
procedure swap(var a,b:longint);
var
t:longint;
begin
t:=a;
a:=b;
b:=t;
end;
procedure kp(l,r:longint);
var
i,j,x:longint;
begin
i:=l;
j:=r;
x:=a[(l+r) div 2];
repeat
while a[i]<x do inc(i);
while x<a[j] do dec(j);
if i<=j then
begin
swap(a[i],a[j]);
inc(i);
dec(j);
end;
until i>j;
if i<r then kp(i,r);
if l<j then kp(l,j);
end;
begin
readln(n);
readln(m);
for i:=1 to n do
read(a[i]);
for i:=1 to m do
begin
p:=n-1;
while a[p]>a[p+1] do dec(p);
q:=p+1;
while (q<=n) and (a[q]>a[p]) do
inc(q);
dec(q);
swap(a[p],a[q]);
kp(p+1,n);
end;
for i:=1 to n-1 do
write(a[i],' ');
writeln(a[n]);
end.
/**************************************************************
Problem: 2247
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/