#include int a[1003][1003]; int main() { int n; scanf("%d", &n); int i, j, k; for (i = 0; i < n; i++) for (j = 0; j < n; j++) a[i][j] = -1; int next; if (n % 2 > 0) { a[0][0] = 1; next = 2; for (k = 1; k < n - 1; k += 2) { a[k][k - 1] = next; next++; i = k; j = k - 1; for (;;) { if (next % 2 == 0) { if (i == k) { if (a[i + 1][j] < 0) { i++; a[i][j] = next; next++; } else { j--; a[i][j] = next; next++; } } else if (j == k) { if (a[i][j + 1] < 0) { j++; a[i][j] = next; next++; } else { i--; a[i][j] = next; next++; } } else if (i == k + 1) { if (a[i - 1][j] < 0) { i--; a[i][j] = next; next++; } else if (j > 0) { j--; a[i][j] = next; next++; } else break; } else { if (a[i][j - 1] < 0) { j--; a[i][j] = next; next++; } else { i--; a[i][j] = next; next++; } } } else { i ^= j; j ^= i; i ^= j; a[i][j] = next; next++; } } a[k + 1][k] = next; next++; a[k][k + 1] = next; next++; a[k][k] = next; next++; a[k + 1][k + 1] = next; next++; } } else { a[0][0] = 1; a[1][0] = 2; a[0][1] = 3; a[1][1] = 4; next = 5; for (k = 2; k < n - 1; k++) { a[k][k] = next; next++; i = j = k; for (;;) { if (i == k) { if (a[j][i] < 0) { i ^= j; j ^= i; i ^= j; a[i][j] = next; next++; } else if (j > 0) { j--; a[i][j] = next; next++; } else break; } else { if (a[j][i] < 0) { i ^= j; j ^= i; i ^= j; a[i][j] = next; next++; } else { i--; a[i][j] = next; next++; } } } i++; a[i][j] = next; next++; k++; for (;;) { if (i == k) { if (a[j][i] < 0) { i ^= j; j ^= i; i ^= j; a[i][j] = next; next++; } else if (j < k) { j++; a[i][j] = next; next++; } else break; } else { if (a[j][i] < 0) { i ^= j; j ^= i; i ^= j; a[i][j] = next; next++; } else { i++; a[i][j] = next; next++; } } } } } for (i = 0; i < n; i++) { for (j = 0; j < n - 1; j++) printf("%d ", a[i][j]); printf("%d\n", a[i][j]); } return 0; }