#define logd(x) printf(#x": %d\n", x)
#define M(a,b) a<b?a:b
#define N(x) !(x%2)
a,b,c,d,e,i,j,x,y,**z;
p(){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));}
f(){
    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;
}
main(){
    scanf("%d%d",&x,&y);
    z=malloc(x*4);
    for(i=x;i--;z[i]=malloc(y*4));
    
    //a=x/2-(x<y?0:N(x));
    //b=y/2-(x<y?0:N(y));
    //a=a<b?a:b;
    //b=(a<b?a:b)-(x<y?N(x):0);
    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;e++<x*y;z[i][j]=e,f());
    
    p();
}