#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  if (n < 3) {
    cout << -1;
    return 0;
  }
  if (n == 3) {
    cout << "1 7 9\n";
    cout << "3 2 5\n";
    cout << "4 8 6\n";
    return 0;
  }
  int T[n + 1][n + 1];
  T[n - 3][n - 3] = 4;
  T[n - 3][n - 2] = 3;
  T[n - 3][n - 1] = 6;
  T[n - 3][n] = 12;
  T[n - 2][n - 3] = 7;
  T[n - 2][n - 2] = 5;
  T[n - 2][n - 1] = 9;
  T[n - 2][n] = 15;
  T[n - 1][n - 3] = 14;
  T[n - 1][n - 2] = 1;
  T[n - 1][n - 1] = 11;
  T[n - 1][n] = 10;
  T[n][n - 3] = 13;
  T[n][n - 2] = 8;
  T[n][n - 1] = 16;
  T[n][n] = 2;
  for (int i = n - 3; i <= n; i++) {
    for (int j = n - 3; j <= n; j++) {
      T[i][j] += n * n - 16;
    }
  }
  int nr = 0;
  for (int krok = 1; krok <= n - 4; krok++) {
    if (krok % 2 == 1) {
      for (int i = n; i >= krok; i--) {
        nr++;
        T[i][krok] = nr;
      }
      for (int i = krok + 1; i <= n; i++) {
        nr++;
        T[krok][i] = nr;
      }
    } else {
      for (int i = n; i >= krok; i--) {
        nr++;
        T[krok][i] = nr;
      }
      for (int i = krok + 1; i <= n; i++) {
        nr++;
        T[i][krok] = nr;
      }
    }
  }
  if (n % 2 == 1) {
    swap(T[n - 4][n - 2], T[n - 4][n]);
  } else {
    swap(T[n][n - 4], T[n - 1][n - 4]);
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      cout << T[i][j] << " ";
    }
    cout << "\n";
  }
  return 0;
}
