program volhebniy_kvadrat;
uses crt;
var
per, a: array [1 .. 9] of integer;
incl: array [1 .. 9] of boolean;
s: array [1 .. 8] of integer;
t, i, j: integer;
nep: boolean;
procedure perest(p: integer);
var
c: integer;
begin
if p - 1 = 9 then
begin
nep := false;
s[1] := per[1] + per[5] + per[9];
s[2] := per[1] + per[4] + per[7];
s[3] := per[2] + per[5] + per[8];
s[4] := per[3] + per[6] + per[9];
s[5] := per[3] + per[5] + per[7];
s[6] := per[1] + per[2] + per[3];
s[7] := per[4] + per[5] + per[6];
s[8] := per[7] + per[8] + per[9];
for i := 1 to 8 do
for j := 1 to 8 do
if s[i] <> s[j] then
nep := true;
if nep = false then
begin
writeln;
t := t + 1;
for i := 1 to 9 do
begin
write(per[i]);
end;
end;
end;
for c := 1 to 9 do
begin
if not incl[c] then
begin
per[p] := a[c];
incl[c] := true;
perest(p + 1);
per[p] := 0;
incl[c] := false;
end;
end;
end;
begin
clrscr;
for i := 1 to 9 do
begin
a[i] := i;
write(a[i], ' ');
end;
perest(1);
writeln;
writeln(t);
readkey;
end.