open List let($)=map let rec f l n a b=length l=n&()=print_endline(String.concat" "(string_of_int$l));()=for j=0to n-1do mem j(l@a@b)||f(l@[j])n(pred$j::a)(succ$j::b)done;;f[](read_int())[][]