#define M(a,b) a<b?a:b
#define N(x) !(x%2)
a,b,c,d,i,j,x,y,**z;
f(x,y){
    int n;
    z=malloc(x*4);
    for(i=x;i--;z[i]=malloc(y*4));
    b=(a=M(x/2-(x<y?0:N(x)),y/2-(x<y?0:N(y))))-(x<y?N(x):0);
    c=!(d=x<y);
    for(i=a,j=b;n++<x*y;){
        z[i][j]=n;
        if(c>0&&!d&&x-i-1==j){
            c=0;
            d=1;
        }
        else if(!c&&d>0&&x-i-1-(x<y?x%2:y%2)==y-j-1){
            c=-1;
            d=0;
        }
        else if(c<0&&!d&&i+(x<y?0:N(y))==y-j-1){
            c=0;
            d=-1;
        }
        else if(!c&&d<0&&i-(x<y?N(x):0)==j){
            c=1;
            d=0;
        }
        i+=c;
        j+=d;
    }
    for(j=y;j--;)for(i=x;i--;printf("%*d%c",(int)log10(x*y)+1,z[x-i-1][y-j-1],i?32:10));
    puts("");
}
main(k){for(k=10;k--;scanf("%d%d",&x,&y),f(x,y));}