/*
#include <stdio.h>
int main()
{
int i, j, n, k, arr[101][101]={};
int side[5 ] ={1,2,3,4,5};
int direct[4][2]={{0, 1},
{1, 0},
{0, -1},
{-1, 0}
};
int x, y, dx, dy, loc=0;
k = 1;
x = 1;
y = 1;
arr[x][y] = k++;
scanf("%d", &n);
for(i=0; i<=n+1; i++) {
for(j=0; j<=n+1; j++) {
if(i==0 || j==0 ||i==n+1 || j==n+1){
arr[i][j] = 1;
}
}
}
for(i=0;i<n*n-1;i++) {
dx = direct[loc][0];
dy = direct[loc][1];
if(arr[x+dx][y+dy]==0) {
x += dx;
y += dy;
arr[x][y] = k++;
}
else {
loc++;
loc %= 4;
i--;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
*/
#include <stdio.h> 미완 !!!!!!!!!
int main()
{
int i, j, n, k, arr[101][101]={}, m;
int direct[4][2]={{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int x, y, dx, dy, loc=0;
k=1;
x=1;
y=1;
arr[x][y]=k++;
scanf("%d", &n, &m);
for(i=0;i<=n+1;i++){
for(j=0;j<=m+1;j++){
if(i==0||j==0||i==n+1||j==m+1){
arr[i][j]=1;
}
}
}
for(i=0;i<n*m-1;i++){
dx=direct[loc][0];
dy=direct[loc][1];
if(arr[x+dx][y+dy]==0) {
x+=dx;
y+=dy;
arr[x][y]=k++;
}
else{
loc++;
loc%=4;
i--;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
printf("%d ", arr[i][j]);
}
printf("\n");
}
}
//http://koistudy.net/?mid=prob_page&NO=1739&SEARCH=0



