var ans,i,j,n,k:longint; a:array[1..13]of longint; s:array[1..13]of boolean; d1:array[2..26]of boolean; d2:array[-12..12]of boolean; PRocedure dfs(j:longint); var i:longint; begin if j>n then begin inc(ans); if (ans<=3)and(ans<>0) then begin for k:=1 to n do write(a[k],' '); writeln; exit; end; exit; end; for i:=1 to n do if (d1[i+j])and(d2[i-j])and(s[i]) then begin a[j]:=i; s[i]:=false; d1[i+j]:=false; d2[i-j]:=false; dfs(j+1); s[i]:=true; d1[i+j]:=true; d2[i-j]:=true; end; end;begin read(n); fillchar(s,sizeof(s),true); fillchar(d1,sizeof(d1),true); fillchar(d2,sizeof(d2),true); dfs(1); write(ans);end.