#include <iostream>
#include <cstring>
using namespace std;
int visitAll(int a[][100],int start,int rows,int col,int num)
{
int endX = rows - start -1;;
int endY = col -start -1;
for(int i=start; i<=endY; i++)
{
a[start][i] = num;
num++;
}
if(start<endX)
{
for(int i=start+1; i<=endX; i++)
{
a[i][endY]= num;
num++;
}
}
if(start<endX && start<endY)
{
for(int i=endY-1; i>=start; i--)
{
a[endX][i]= num;
num++;
}
}
if(start+1<endX && start<endY)
{
for(int i=endX-1; i>start; i--)
{
a[i][start]= num;
num++;
}
}
return num;
}
void numbers(int a[][100],int rows,int col)
{
if(rows<=0 || col<=0)return;
int start=0;
int num=1;
while(start*2 <rows && start*2 <col)
{
num = visitAll(a,start,rows,col,num);
start++;
}
}
int main()
{
int a[100][100];
int m,n;
cin>>m>>n;
numbers(a,m,n);
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
{
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}