program queen;
var
a:array[1..8] of integer;
b:array[-7..16,-7..16] of integer;
k:integer;
procedure main(n:integer);
var
i,j:integer;
begin
if n=9 then
begin
for i:=1 to 8 do
write(a[i],' ');
writeln;
inc(k);
end
else
for i:=1 to 8 do
if b[n,i]=0 then
begin
a[n]:=i;
for j:=n+1 to 8 do
begin
b[j,i]:=b[j,i]+1;
b[j,i+j-n]:=b[j,i+j-n]+1;
b[j,i-j+n]:=b[j,i-j+n]+1;
end;
main(n+1);
for j:=n+1 to 8 do
begin
b[j,i]:=b[j,i]-1;
b[j,i+j-n]:=b[j,i+j-n]-1;
b[j,i-j+n]:=b[j,i-j+n]-1;
end;
a[n]:=0;
end;
end;
begin
main(1);
writeln(k);
end.
var
a:array[1..8] of integer;
b:array[-7..16,-7..16] of integer;
k:integer;
procedure main(n:integer);
var
i,j:integer;
begin
if n=9 then
begin
for i:=1 to 8 do
write(a[i],' ');
writeln;
inc(k);
end
else
for i:=1 to 8 do
if b[n,i]=0 then
begin
a[n]:=i;
for j:=n+1 to 8 do
begin
b[j,i]:=b[j,i]+1;
b[j,i+j-n]:=b[j,i+j-n]+1;
b[j,i-j+n]:=b[j,i-j+n]+1;
end;
main(n+1);
for j:=n+1 to 8 do
begin
b[j,i]:=b[j,i]-1;
b[j,i+j-n]:=b[j,i+j-n]-1;
b[j,i-j+n]:=b[j,i-j+n]-1;
end;
a[n]:=0;
end;
end;
begin
main(1);
writeln(k);
end.









