program oj_1100;
var
k,k1,i:longint;
a,s:array[0..13]of longint;
b:array[1..13]of boolean;
procedure print(p:longint);
var
q:longint;
begin
for q:=1 to p-1 do
begin
write(a[q],' ');
end;
write(a[p]);
writeln;
end;
procedure search(j:longint);
var
q:longint;
begin
if j>6 then print(6)
else
begin
for q:=1 to k do
if (b[q]=false)and(s[q]>a[j-1]) then
begin
a[j]:=s[q];
b[q]:=true;
search(j+1);
b[q]:=false;
end;
end;
end;
begin
read(k);
repeat
for i:=1 to k do
read(s[i]);
search(1);
read(k);
if k<>0 then
writeln;
until k=0;
end.
/**************************************************************
Problem: 2123
User: admin
Language: Pascal
Result: Wrong Answer
****************************************************************/