1 program Neayo;
2 const
3 inf='queen.in';
4 ouf='queen.out';
5 var
6 i,j,k,n:longint;
7 line,h:array[0..11]of longint;
8 f1,f2:array[-10..25]of boolean;
9 a:array[0..11,0..11]of longint;
10 procedure init;
11 begin
12 assign(input,inf);assign(output,ouf);
13 reset(input);rewrite(output);
14 readln(n);
15 close(input);
16 end;
17 procedure go(x:longint);
18 var i,j,xi,xj:longint;
19 emp:boolean;
20 begin
21 if x=n+1 then
22 begin
23 for i:=1 to n do write(line[i],' ');
24 writeln;
25 exit;
26 end;
27 for j:=1 to n do
28 if (h[j]=0)and(not f1[x+j])and(not f2[x-j]) then
29 begin
30 f1[x+j]:=true;
31 f2[x-j]:=true;
32 line[x]:=j;
33 h[j]:=1;
34 go(x+1);
35 f1[x+j]:=false;
36 f2[x-j]:=false;
37 line[x]:=0;
38 h[j]:=0;
39 end;
40 end;
41 begin
42 init;
43 if n=1 then writeln(1);
44 if (n=2)or(n=3) then writeln(' ');
45 if n>3 then go(1);
46 close(output);
47 end.