program jump;
var
i,j,n:integer;
h:array[-1..7,-1..7]of integer;
a,b:array[1..8]of integer;
procedure print;
var i,j:integer;
begin
n:=n+1;
if n<=4 then
begin
for i:=1 to 5 do
begin
for j:=1 to 5 do
write(h[i,j]:4);
writeln;end;
writeln;end;end;
procedure try(x,y,i:integer);
var j,u,v:integer;
begin
for j:=1 to 8 do
begin
u:=x+a[j];
v:=y+b[j];
if h[u,v]=0 then
begin
h[u,v]:=i;
if i<25 then try(u,v,I+1) else print;
h[u,v]:=0;
end;
end;
end;
begin
for i:=-1 to 7 do
for j:=-1 to 7 do
if (i>=1)and (i<=5) and (j>=1) and (j<=5) then h[i,j]:=0 else h[i,j]:=1;
a[1]:=2; b[1]:=1;
a[2]:=1; b[2]:=2;
a[3]:=-1;b[3]:=2;
a[4]:=-2;b[4]:=1;
a[5]:=-2;b[5]:=-1;
a[6]:=-1;b[6]:=-2;
a[7]:=1; b[7]:=-2;
a[8]:=2; b[8]:=-1;
n:=0;h[1,1]:=1;
try(1,1,2);write(n);
end.