<Problem>
http://ntucoder.net/Problem/Details/33 Uses Crt;
Var a:array[0..100,0..100] of longint;
n,i,j,num,d,b:longint;
Procedure Ghi;
var i,j:longint;
begin
for i:=1 to n do
begin
for j:=1 to n do write(a[i,j],' ');
writeln;
end;
end;
Procedure TCL(d,b:longint);
var i:longint;
begin
inc(d); inc(b);
for i:=b to n-b+1 do begin //luu chu so hang tren
inc(num);
a[d,i]:=num;
end;
for i:=d+1 to n-d+1 do begin //luu chu so cot ben phai
inc(num);
a[i,n-b+1]:=num;
end;
for i:=n-b downto b do //luu chu so hang duoi
begin
inc(num);
a[n-d+1,i]:=num;
end;
for i:=n-d downto d+1 do //luu chu so cot ben trai
begin
inc(num);
a[i,b]:=num;
end; ;
if ((n mod 2=0) and (n div 2=d)) or ((n mod 2=1) and (n div 2+1=d))
then exit else TCL(d,b);
end;
Begin
(* ban chat cua bai la sap xep vong trong mang hai chieu voi cac vong bat dau tu o [i,j],[i+1,j+1],[i+2,j+2]..vv*)
readln(n);
num:=0; d:=0; b:=0;
TCL(d,b); ghi;
readln;
End.