type
arr = array[0..100,0..100] of Integer;
procedure FillCharArr(a: arr; m1, n1: Integer);
var
i, j: Integer;
begin
for i := 0 to m1 do
for j := 0 to n1 do
a[i, j] := 0;
end;
procedure Print(a: arr; m1, n1: Integer);
var
i, j: Integer;
begin
for i := 0 to m1 do
begin
for j := 0 to n1 do
Write(a[i, j]: 3);
Writeln;
end;
end;
var
a: arr;
dx, dy: array[0..3] of Integer;
x, y, i, k, m, n, d: Integer;
begin
dx[0] := 1; dx[1] := 0; dx[2] := -1; dx[3] := 0;
dy[0] := 0; dy[1] := 1; dy[2] := 0; dy[3] := -1;
Readln(m, n);
d := 0; x := 0;
y := 0; k := 1;
FillCharArr(a, m, n);
while (k <= (m + 1) * (n + 1)) do begin
a[x, y] := k;
x := x + dx[d]; y := y + dy[d];
if (x + dx[d] > m) or (y + dy[d] > n) or (x + dx[d] < 0) or
(y + dy[d] < 0) or (a[x + dx[d], y + dy[d]] <> 0) then
d := (d + 1) mod 4;
k := k + 1;
end;
Print(a, m, n);
Readln;
end.