/*
#include <stdio.h>
int main()
{
int n,m,i,j;
int nrr[100000]={};
int mrr[10000]={};
int xx[10000]={};
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d", &nrr[i]);
}
scanf("%d", &m);
for(j=1; j<=m; j++)
{
scanf("%d", &mrr[j]);
}
for(i=1; i<=n; i++)
{
for(j=1; i<=m; j++)
{
if(nrr[i]==mrr[j])
{
xx[j]++;
}
}
}
for(j=1; j<=m; j++)
{
printf("%d ", xx[j]);
}
return 0;
}
5
2 52 23 55 100
0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1
arr[0] arr[1] arr[2] arr[3] arr[4] arr[5] arr[6] arr[7] ... arr[23] ... arr[52] .. arr[55] arr[100]
4
5 2 55 99
*//*
#include <stdio.h>
int main()
{
int n,i,x,j,y;
int arr[10000001]={};
scanf("%d", &n);
for(i=1; i<=n; i++)
{
scanf("%d", &x);
arr[x]=1;
}
scanf("%d", &x);
for(j=1; j<=x; j++)
{
scanf("%d", &y);
if(arr[y]==1)
{
printf("1 ");
}
else
{
printf("0 ");
}
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int i,n,count;
int arr[35]= {};
scanf("%d", &n);
for(i=0; ; i++)
{
arr[i] = n%2;
n=(n/2);
if(n==0) break;
}
count = i;
for(i=count; i>=0; i--)
{
printf("%d", arr[i]);
}
return 0;
}
*/
/*
1차원 : 선
2차원 : 면
int a[3][4]={};
j=0 j=1 j=2 j=3
i=0 a[0][0] a[0][1] a[0][2] a[0][3]
i=1 a[1][0] a[1][1] a[1][2] a[1][3]
i=2 a[2][0] a[2][1] a[2][2] a[2][3]
*/
/*
#include <stdio.h>
int main()
{
int a[101][101]={};
int i, j,k=1,n;
scanf("%d", &n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
a[i][j]=k++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}
*/
#include <stdio.h>
int main()
{
int a[101][101]={};
int i, j,k=1,n,m;
scanf("%d %d", &n, &m);
for(i=n-1;i>=0;i--)
{
for(j=m-1;j>=0;j--)
{
a[i][j]=k++;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
return 0;
}