var
n:longint;
a:array[0..20] of boolean;
f:array[0..20] of longint;
procedure pk(x:longint);
var i:longint;
begin
if x=n+1 then begin for i:=1 to n do write(f[i]:5);writeln;exit;end;
for i:=1 to n do
if a[i] then
begin f[x]:=i;a[i]:=false;pk(x+1);a[i]:=true;end;
end;
begin
readln(n);
fillchar(f,sizeof(f),true);
pk(1);
end.