#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
//////////////////// 주석 뗀 버전
int* buildSnailReverse(int* a, int w, int h)
{
int
u[] = { 1, w,-1,-w},
d = w < h,
z = ((d? w: h) - 1 >> 1) * (w + 1) + (~w & d),
n = d? h - w: w - h,
p = 0,
c = n,
i = 0;
while(i < w * h)
{
a[z] = ++i;
z += u[d];
if (!c--) ++d &= 3, c = n ^= p ^= n ^= p++;
}
return a;
}
void printArray(int* a, int w, int h) { for(int y = 0; y < h; y++) { for(int x = 0; x < w; x++) printf("%3d", a[x + y * w]); cout << endl; } }
int main()
{
int w, h;
cin >> w >> h;
int* a = new int[w * h];
buildSnailReverse(a, w, h);
printArray(a, w, h);
delete[] a;
fflush(stdin);
getchar();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vLy8vLy8vLy8vLy8vLy8vLy8vIOyjvOyEnSDrl4Ag67KE7KCECgppbnQqIGJ1aWxkU25haWxSZXZlcnNlKGludCogYSwgaW50IHcsIGludCBoKQp7CiAgICAgICAgaW50CiAgICAgICAgdVtdID0geyAxLCB3LC0xLC13fSwKICAgICAgICBkID0gdyA8IGgsCiAgICAgICAgeiA9ICgoZD8gdzogaCkgLSAxID4+IDEpICogKHcgKyAxKSArICh+dyAmIGQpLAogICAgICAgIG4gPSBkPyBoIC0gdzogdyAtIGgsCiAgICAgICAgcCA9IDAsCiAgICAgICAgYyA9IG4sCiAgICAgICAgaSA9IDA7CiAgICAgICAgd2hpbGUoaSA8IHcgKiBoKQogICAgICAgIHsKICAgICAgICAgICAgICAgIGFbel0gPSArK2k7CiAgICAgICAgICAgICAgICB6ICs9IHVbZF07CiAgICAgICAgICAgICAgICBpZiAoIWMtLSkgKytkICY9IDMsIGMgPSBuIF49IHAgXj0gbiBePSBwKys7CiAgICAgICAgfQogICAgICAgIHJldHVybiBhOwp9Cgp2b2lkIHByaW50QXJyYXkoaW50KiBhLCBpbnQgdywgaW50IGgpIHsgZm9yKGludCB5ID0gMDsgeSA8IGg7IHkrKykgeyBmb3IoaW50IHggPSAwOyB4IDwgdzsgeCsrKSBwcmludGYoIiUzZCIsIGFbeCArIHkgKiB3XSk7IGNvdXQgPDwgZW5kbDsgfSB9CgppbnQgbWFpbigpCnsKICAgICAgICBpbnQgdywgaDsKICAgICAgICBjaW4gPj4gdyA+PiBoOwogICAgICAgIGludCogYSA9IG5ldyBpbnRbdyAqIGhdOwogICAgICAgIGJ1aWxkU25haWxSZXZlcnNlKGEsIHcsIGgpOwogICAgICAgIHByaW50QXJyYXkoYSwgdywgaCk7CiAgICAgICAgZGVsZXRlW10gYTsKICAgICAgICBmZmx1c2goc3RkaW4pOwogICAgICAgIGdldGNoYXIoKTsKICAgICAgICByZXR1cm4gMDsKfQ==