program ggg;
uses crt;
type myArray=array[1..100] of integer;
var a:myArray;
    n,i:integer;
    procedure print;
var i:integer;
    begin for i:=1 to n do write(a[i]:3);
    writeln;
end;
    procedure swap(var a,b:integer);
    var c:integer;
    begin c:=a;a:=b;b:=c;
    end;
    procedure solve(t:integer);
    begin if t>=n then print
    else for i:=t+1 to n do begin
    swap(a[t+1],a[i]) ;
    solve(t+1);
    swap(a[t+1],a[i]);
end;
    end;
BEGIN
clrscr;
    writeln('vvedite n');
readln(n);
    for i:=1 to n do a[i]:=i;
    solve(0);readln;
END.