/*
#include <stdio.h>
int main()
{
int i, j, k, n;
scanf("%d %d", &n, &k);
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if((i+j+1)%k==0||i==0 || i==n-1||j==0||j==n-1) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
}
*/
/*
#include<stdio.h>
#include<math.h>
int main ()
{
int n,x,y;
scanf("%d %d %d",&n,&x,&y);
int arr[100][100]={0,};
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
arr[i][j] = abs(i-x)+abs(j-y);
printf("%d ",arr[i][j]+1);
}
printf("\n");
}
return 0;
}
*/
/*
#include<stdio.h>
int main() {
int n, arr[10000001] = {0};
int k, i;
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d", &k);
arr[k] = 1;
}
scanf("%d", &n);
for(i=0; i<n; i++){
scanf("%d", &k);
printf("%d ", arr[k]);
}
return 0;
}
*/
/*
#include<stdio.h>
int main ()
{
int arr[27][27]={0};
int arr1[25][25]={0};
for(int i=1;i<=25;i++)
{
for(int j=1;j<=25;j++)
{
scanf("%d",&arr[i][j]);
}
}
for(int i=1;i<=25;i++)
{
for(int j=1;j<=25;j++)
{
if(arr[i][j]==1)
{
if(arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]>=2 && arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]<=3)
{
arr1[i-1][j-1]=1;
}
else
{
arr1[i-1][j-1]=0;
}
}
else
{
if(arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]==3)
{
arr1[i-1][j-1]=1;
}
}
}
}
for(int i=0;i<25;i++)
{
for(int j=0;j<25;j++)
{
printf("%d ",arr1[i][j]);
}
printf("\n");
}
return 0;
}
*/
/*
#include<stdio.h>
int arr[172][172];
int arr1[172][172];
int main ()
{
int a,b,x,y,z;
int k;
scanf("%d %d",&a,&b);
scanf("%d %d %d",&x,&y,&z);
for(int i=1;i<=a;i++)
{
for(int j=1;j<=b;j++)
{
scanf("%d",&arr[i][j]);
}
}
scanf("%d",&k);
for(int p=0;p<k;p++)
{
for(int i=1;i<=a;i++)
{
for(int j=1;j<=b;j++)
{
if(arr[i][j]==1)
{
if(arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]>=y && arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]<z)
{
arr1[i][j]=1;
}
if(arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]>=z)
{
arr1[i][j]=0;
}
}
else
{
if(arr[i-1][j]+ arr[i+1][j]+ arr[i][j+1]+ arr[i][j-1]+ arr[i-1][j-1]+ arr[i-1][j+1]+ arr[i+1][j-1]+ arr[i+1][j+1]==x)
{
arr1[i][j]=1;
}
}
}
}
for(int i=1; i<=a; i++) {
for(int j=1; j<=b; j++) {
arr[i][j] = arr1[i][j];
arr1[i][j] = 0;
}
}
}
for(int i=1;i<=a;i++)
{
for(int j=1;j<=b;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
/*
#include<stdio.h>
int main() {
int map[27][27] = {0};
int map2[27][27] = {0};
int i, j, x, y, z, n, k;
for(i=1; i<=25; i++){
for(j=1; j<=25; j++){
scanf("%d", &map[i][j]);
}
}
for(i=1; i<=25; i++){
for(j=1; j<=25; j++){
k=0;
for(x=i-1; x<=i+1; x++) {
for(y=j-1; y<=j+1; j++) {
k+=map[x][y];
}
}
if(map[i][j]==0 && k==3) {
map2[i][j] = 1;
}
else {
k--;
if(k>=2 && k<=3) {
map2[i][j] = map[i][j];
}
}
}
}
}
*/
#include<stdio.h>
int main ()
{
int n,m;
int arr[100][100]={0,};
int count=1;
arr[0][0]=1;
scanf("%d %d",&n,&m);
for(int p=1;p<n+m-2;p++)
{
for(int j=0;j<m;j++)
{
for(int i=0;i<n;i++)
{
if(i+j==p)
{
arr[i][j] += count+1;
count += 1;
}
}
}
}
if(n==1 && m !=1)
{
arr[n-1][m-1]=arr[n-1][m-2]+1;
}
else if(n==1 && m==1)
{
arr[n-1][m-1]=1;
}
else
{
arr[n-1][m-1]=arr[n-2][m-1]+1;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}