program bahaunghou;
var
n,sum,i:longint;
b1:array[1..100]of boolean;
a:array[1..100]of longint;
procedure print;
var
i:longint;
begin
for i:=1 to n do write(a[i]);
writeln;
end;
function check(k:longint):boolean;
var
i:longint;
begin
check:=false;
for i:=1 to k-1 do
if abs(i-k)=abs(a[i]-a[k]) then exit;
check:=true;
end;
procedure play(k:longint);
var
i:longint;
begin
if k=n+1 then begin inc(sum);print;exit;end;
for i:=1 to n do
if (b1[i])then
begin
a[k]:=i;
b1[i]:=false;
if check(k) then play(k+1);
b1[i]:=true;
end;
end;
begin
assign(input,'win.in');
assign(output,'win.out');
reset(input);
rewrite(output);
readln(n);
//init;'
for i:=1 to n do b1[i]:=true;
play(1);
writeln(sum);
close(input);
close(output);
end.