var
n, t, i : longint;
a, b : array[0..110] of longint;
isUse : array[0..110] of boolean;
function isSmall( ):boolean;
var
i : longint;
begin
for i := 1 to n do
if a[i] <> b[i] then
exit(a[i] < b[i]);
exit(false);
end;
function getPermutation(pos : longint) : boolean;
var
i : longint;
begin
if pos > n then
exit(isSmall( ));
for i := 1 to n do
begin
if isUse[i] = false then
begin
b[pos] := i; isUse[i] := true;
if getPermutation(pos + 1) = true then
exit(true);
isUse[i] := false;
end;
end;
exit(false);
end;
procedure getNext( );
var
i : longint;
begin
for i := 1 to n do
isUse[i] := false;
getPermutation(1);
for i := 1 to n do
a[i] := b[i];
end;
begin
read(n, t);
for i := 1 to n do
read(a[i]);
for i := 1 to t do
getNext( );
for i := 1 to n do
begin
write(a[i]);
if i = n then writeln else write(' ');
end;
end. 输入1:6 10 1 6 4 5 3 2
输出1:1(3 分)
输入2:6 200 1 5 3 4 2 6
输出2:2(5 分)
