#include <stdio.h>
/* The function in 97 bytes. */
int f(int n,int a[n][n],int*b){for(int i=0;i<n;i++)for(int j=0,k=n;j<n;j++)*b++=a[i][i%2?j:--k];}
int main(void) {
/* N != 0. */
#define N 4
/* Declaration of the input array. */
#if N == 4
int input[N][N] = {{4, 3, 2, 1}, {5, 6, 7, 8}, {12, 11, 10, 9}, {13, 14, 15, 16}};
#elif N == 3
int input[N][N] = {{3, 2, 1}, {4, 5, 6}, {9, 8, 7}};
#elif N == 2
int input[N][N] = {{2, 1}, {3, 4}};
#elif N == 1
int input[N][N] = {{1}};
#endif
/* Declaration of the output array. */
int output[N * N];
/* Process. */
f(N, input, output);
/* Check the result. */
for (size_t i = 0; i < N*N; i++)
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovKiBUaGUgZnVuY3Rpb24gaW4gOTcgYnl0ZXMuICovCmludCBmKGludCBuLGludCBhW25dW25dLGludCpiKXtmb3IoaW50IGk9MDtpPG47aSsrKWZvcihpbnQgaj0wLGs9bjtqPG47aisrKSpiKys9YVtpXVtpJTI/ajotLWtdO30KCmludCBtYWluKHZvaWQpIHsKCS8qIE4gIT0gMC4gKi8KCSNkZWZpbmUgTiA0CgkKCS8qIERlY2xhcmF0aW9uIG9mIHRoZSBpbnB1dCBhcnJheS4gKi8KCSNpZiBOID09IDQKCQlpbnQgaW5wdXRbTl1bTl0gPSB7ezQsIDMsIDIsIDF9LCB7NSwgNiwgNywgOH0sIHsxMiwgMTEsIDEwLCA5fSwgezEzLCAxNCwgMTUsIDE2fX07CgkjZWxpZiBOID09IDMKCQlpbnQgaW5wdXRbTl1bTl0gPSB7ezMsIDIsIDF9LCB7NCwgNSwgNn0sIHs5LCA4LCA3fX07CgkjZWxpZiBOID09IDIKCQlpbnQgaW5wdXRbTl1bTl0gPSB7ezIsIDF9LCB7MywgNH19OwoJI2VsaWYgTiA9PSAxCgkJaW50IGlucHV0W05dW05dID0ge3sxfX07CgkjZW5kaWYKCgkvKiBEZWNsYXJhdGlvbiBvZiB0aGUgb3V0cHV0IGFycmF5LiAqLwoJaW50IG91dHB1dFtOICogTl07CgoJLyogUHJvY2Vzcy4gKi8KCWYoTiwgaW5wdXQsIG91dHB1dCk7CgoJLyogQ2hlY2sgdGhlIHJlc3VsdC4gKi8KCWZvciAoc2l6ZV90IGkgPSAwOyBpIDwgTipOOyBpKyspCgkJcHJpbnRmKCIlZCAiLCBvdXRwdXRbaV0pOwp9