using namespace std;


int* buildSnailReverse( int* a, int w, int h )

{

int

u[] = { 1, w,-1,-w},

d = w

z = ((d? w: h) - 1 >> 1) * (w + 1) + (~w & d),

n = d? h - w: w - h,

p = 0,

c = n,

i = 0;

while(i

{

a[z] = ++i;

z += u[d];

if (!c--)

{

++d &= 3, c = n ^= p ^= n ^= p;

p++;

}

}

return a;

}


void printArray(int* a, int w, int h)

{

for(int y = 0; y

{

for(int x = 0; x

printf("%3d", a[x + y * w]);

cout <

}

}


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;

}