#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-j-1){
c=-1;
d=0;
}
else if(c<0&&!d&&i+1==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);
c=1;
}
i=a;
j=b;
while(e++<x*y){
z[i][j]=e;
f();
}
p();
}
I2RlZmluZSBsb2coeCkgcHJpbnRmKCN4IjogJWRcbiIsIHgpCmEsYixjLGQsZSxpLGoseCx5LCoqejsKcCgpewogICAgaj15OwogICAgd2hpbGUoai0tKXsKICAgICAgICBpPXg7CiAgICAgICAgd2hpbGUoaS0tKXByaW50ZigiJTNkICIselt4LWktMV1beS1qLTFdKTsKICAgICAgICBwdXRzKCIiKTsKICAgIH0KfQpmKCl7CiAgICBpZihjPjAmJiFkJiZ4LWktMT09ail7CiAgICAgICAgYz0wOwogICAgICAgIGQ9MTsKICAgIH0KICAgIGVsc2UgaWYoIWMmJmQ+MCYmeC1pLTE9PXktai0xKXsKICAgICAgICBjPS0xOwogICAgICAgIGQ9MDsKICAgIH0KICAgIGVsc2UgaWYoYzwwJiYhZCYmaSsxPT15LWotMSl7CiAgICAgICAgYz0wOwogICAgICAgIGQ9LTE7CiAgICB9CiAgICBlbHNlIGlmKCFjJiZkPDAmJmk9PWopewogICAgICAgIGM9MTsKICAgICAgICBkPTA7CiAgICB9CiAgICBwcmludGYoIiVkICVkXG4iLGMsZCk7CiAgICBpKz1jOwogICAgais9ZDsKfQptYWluKCl7CiAgICBzY2FuZigiJWQlZCIsJngsJnkpOwogICAgej1tYWxsb2MoeCo0KTsKICAgIGk9eDsKICAgIHdoaWxlKGktLSl6W2ldPW1hbGxvYyh5KjQpOwogICAgCiAgICBpZih4PHkpewogICAgICAgIGE9eC8yOwogICAgICAgIGI9eS8yOwogICAgICAgIGE9YTxiP2E6YjsKICAgICAgICBiPShhPGI/YTpiKS0hKHglMik7CiAgICAgICAgZD0xOwogICAgfQogICAgZWxzZXsKICAgICAgICBhPXgvMi0hKHglMik7CiAgICAgICAgYj15LzItISh5JTIpOwogICAgICAgIGM9MTsKICAgIH0KICAgIAogICAgaT1hOwogICAgaj1iOwogICAgCiAgICB3aGlsZShlKys8eCp5KXsKICAgICAgICB6W2ldW2pdPWU7CiAgICAgICAgcHJpbnRmKCIlZCAlZCAlZFxuIixlLGksaik7CiAgICAgICAgZigpOwogICAgfQogICAgCiAgICBwKCk7Cn0=