program Hello;
procedure FillZigzag(n: Integer);
var
ix, iy, nd, nn, n22, ny, oddb: Integer;
begin
nn := n * n;
for iy := 0 to n - 1 do begin
for ix := 0 to n - iy - 1 do begin
nd := ix + iy;
oddb := (nd and 1) * 2;
Write(nd * (nd + 1 + oddb) div 2 + 1 + iy * (1 - oddb) : 4);
end;
n22 := 2 * n - 2 - iy;
ny := n - iy - 1;
for ix := n - iy to n - 1 do begin
nd := n22 - ix;
oddb := (nd and 1) * 2;
Write(nn - nd * (nd + 1 + oddb) div 2 - ny*(1 - oddb) : 4)
end;
Writeln;
end;
end;
begin
FillZigzag(7);
end.