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 ****************************************************************/