#define log(x) printf(#x": %d\n", x)
a,b,c,d,e,i,j,x,y,**z;
p(){
j=y;
while(j--){
i=x;
while(i
--)printf("%3d ",z
[x
-i
-1][y
-j
-1]); }
}
f(){
if(c>0&&!d&&x-i-1==j){
c=0;
d=1;
}
else if(!c&&d>0&&x-i-1-y%2==y-j-1){
c=-1;
d=0;
}
else if(c<0&&!d&&i+!(y%2)==y-j-1){
c=0;
d=-1;
}
else if(!c&&d<0&&i==j){
c=1;
d=0;
}
i+=c;
j+=d;
}
main(){
i=x;
if(x<y){
a=x/2;
b=y/2;
a=a<b?a:b;
b=(a<b?a:b)-!(x%2);
d=1;
}
else{
a=x/2-!(x%2);
b=y/2-!(y%2);
a=a<b?a:b;
b=a<b?a:b;
c=1;
}
i=a;
j=b;
while(e++<x*y){
z[i][j]=e;
f();
}
p();
}
I2RlZmluZSBsb2coeCkgcHJpbnRmKCN4IjogJWRcbiIsIHgpCmEsYixjLGQsZSxpLGoseCx5LCoqejsKcCgpewogICAgaj15OwogICAgd2hpbGUoai0tKXsKICAgICAgICBpPXg7CiAgICAgICAgd2hpbGUoaS0tKXByaW50ZigiJTNkICIselt4LWktMV1beS1qLTFdKTsKICAgICAgICBwdXRzKCIiKTsKICAgIH0KfQpmKCl7CiAgICBpZihjPjAmJiFkJiZ4LWktMT09ail7CiAgICAgICAgYz0wOwogICAgICAgIGQ9MTsKICAgIH0KICAgIGVsc2UgaWYoIWMmJmQ+MCYmeC1pLTEteSUyPT15LWotMSl7CiAgICAgICAgYz0tMTsKICAgICAgICBkPTA7CiAgICB9CiAgICBlbHNlIGlmKGM8MCYmIWQmJmkrISh5JTIpPT15LWotMSl7CiAgICAgICAgYz0wOwogICAgICAgIGQ9LTE7CiAgICB9CiAgICBlbHNlIGlmKCFjJiZkPDAmJmk9PWopewogICAgICAgIGM9MTsKICAgICAgICBkPTA7CiAgICB9CiAgICBwcmludGYoIiVkICVkXG4iLGMsZCk7CiAgICBpKz1jOwogICAgais9ZDsKfQptYWluKCl7CiAgICBzY2FuZigiJWQlZCIsJngsJnkpOwogICAgej1tYWxsb2MoeCo0KTsKICAgIGk9eDsKICAgIHdoaWxlKGktLSl6W2ldPW1hbGxvYyh5KjQpOwogICAgCiAgICBpZih4PHkpewogICAgICAgIGE9eC8yOwogICAgICAgIGI9eS8yOwogICAgICAgIGE9YTxiP2E6YjsKICAgICAgICBiPShhPGI/YTpiKS0hKHglMik7CiAgICAgICAgZD0xOwogICAgfQogICAgZWxzZXsKICAgICAgICBhPXgvMi0hKHglMik7CiAgICAgICAgYj15LzItISh5JTIpOwogICAgICAgIGE9YTxiP2E6YjsKICAgICAgICBiPWE8Yj9hOmI7CiAgICAgICAgYz0xOwogICAgfQogICAgCiAgICBpPWE7CiAgICBqPWI7CiAgICAKICAgIHdoaWxlKGUrKzx4KnkpewogICAgICAgIHpbaV1bal09ZTsKICAgICAgICBwcmludGYoIiVkICVkICVkXG4iLGUsaSxqKTsKICAgICAgICBmKCk7CiAgICB9CiAgICAKICAgIHAoKTsKfQ==