#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0), cin.tie(0);
int N; cin >> N;
if (N <= 2) {
cout << -1 << '\n';
exit(0);
}
if (N == 3) {
cout << " 8 6 3\n";
cout << " 7 1 9\n";
cout << " 5 4 2\n";
exit(0);
}
vector<vector<int>> G(N, vector<int>(N));
G[0][0] = 13; G[0][1] = 8; G[0][2] = 16; G[0][3] = 2;
G[1][0] = 14; G[1][1] = 1; G[1][2] = 11; G[1][3] = 10;
G[2][0] = 7; G[2][1] = 5; G[2][2] = 9; G[2][3] = 15;
G[3][0] = 4; G[3][1] = 3; G[3][2] = 6; G[3][3] = 12;
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
G[i][j] += N*N - 16;
}
}
int idx = 0;
for (int i = 4; i < N; i++) {
if (i % 4 == 0) {
for (int j = 0; j < i; j++) {
G[j][i] = ++idx;
}
for (int j = i; j >= 0; j--) {
G[i][j] = ++idx;
}
if (i == N-1) {
swap(G[i][0], G[i][1]);
}
} else {
for (int j = 0; j < i; j++) {
G[i][j] = ++idx;
}
for (int j = i; j >= 0; j--) {
G[j][i] = ++idx;
}
if (i == N-1) {
swap(G[0][i], G[1][i]);
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << G[i][j] << " \n"[j+1==N];
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApOwoJaW50IE47IGNpbiA+PiBOOwoJaWYgKE4gPD0gMikgewoJCWNvdXQgPDwgLTEgPDwgJ1xuJzsKCQlleGl0KDApOwoJfQoKCWlmIChOID09IDMpIHsKCQljb3V0IDw8ICIgOCA2IDNcbiI7CgkJY291dCA8PCAiIDcgMSA5XG4iOwoJCWNvdXQgPDwgIiA1IDQgMlxuIjsKCQlleGl0KDApOwoJfQoKCXZlY3Rvcjx2ZWN0b3I8aW50Pj4gRyhOLCB2ZWN0b3I8aW50PihOKSk7CglHWzBdWzBdID0gMTM7IEdbMF1bMV0gPSA4OyBHWzBdWzJdID0gMTY7IEdbMF1bM10gPSAyOwoJR1sxXVswXSA9IDE0OyBHWzFdWzFdID0gMTsgR1sxXVsyXSA9IDExOyBHWzFdWzNdID0gMTA7CglHWzJdWzBdID0gNzsgR1syXVsxXSA9IDU7IEdbMl1bMl0gPSA5OyBHWzJdWzNdID0gMTU7CglHWzNdWzBdID0gNDsgR1szXVsxXSA9IDM7IEdbM11bMl0gPSA2OyBHWzNdWzNdID0gMTI7CgoJZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKCQlmb3IgKGludCBqID0gMDsgaiA8IDQ7IGorKykgewoJCQlHW2ldW2pdICs9IE4qTiAtIDE2OwoJCX0KCX0KCglpbnQgaWR4ID0gMDsKCWZvciAoaW50IGkgPSA0OyBpIDwgTjsgaSsrKSB7CgkJaWYgKGkgJSA0ID09IDApIHsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCBpOyBqKyspIHsKCQkJCUdbal1baV0gPSArK2lkeDsKCQkJfQoJCQlmb3IgKGludCBqID0gaTsgaiA+PSAwOyBqLS0pIHsKCQkJCUdbaV1bal0gPSArK2lkeDsKCQkJfQoJCQlpZiAoaSA9PSBOLTEpIHsKCQkJCXN3YXAoR1tpXVswXSwgR1tpXVsxXSk7CgkJCX0KCQl9IGVsc2UgewoJCQlmb3IgKGludCBqID0gMDsgaiA8IGk7IGorKykgewoJCQkJR1tpXVtqXSA9ICsraWR4OwoJCQl9CgkJCWZvciAoaW50IGogPSBpOyBqID49IDA7IGotLSkgewoJCQkJR1tqXVtpXSA9ICsraWR4OwoJCQl9CgkJCWlmIChpID09IE4tMSkgewoJCQkJc3dhcChHWzBdW2ldLCBHWzFdW2ldKTsKCQkJfQoJCX0KCX0KCglmb3IgKGludCBpID0gMDsgaSA8IE47IGkrKykgewoJCWZvciAoaW50IGogPSAwOyBqIDwgTjsgaisrKSB7CgkJCWNvdXQgPDwgR1tpXVtqXSA8PCAiIFxuIltqKzE9PU5dOwoJCX0KCX0KCglyZXR1cm4gMDsKfQo=