#include <bits/stdc++.h>
using namespace std;
const long long int MOD = 1e9 + 7;
const long double PI = 3.14159265;
long long int powerWithMod(long long int base, long long int exponent,
                           long long int modulus = LLONG_MAX) {
  long long int result = 1;
  base %= modulus;
  while (exponent > 0) {
    if (exponent % 2 == 1) result = (result * base) % modulus;
    exponent >>= 1;
    base = (base * base) % modulus;
  }
  return result;
}
long long int modInverse(long long int a, long long int m = MOD) {
  return powerWithMod(a, m - 2, m);
}
int n, a[1234][1234];
inline int f(int x, int n) { return x % n ? x % n : n; }
void populate(int n) {
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n - 2; j += 2) a[i][f(i + j, n)] = 1;
  }
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  cin >> n;
  if (n == 4) {
    cout << "-1\n";
    return 0;
  }
  if (n % 2)
    populate(n);
  else {
    populate(n - 1);
    a[n][1] = 1;
    a[n][2] = 1;
    for (int i = 3; i < n; i++) a[i][n] = 1;
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      cout << a[i][j] << " ";
    }
    cout << "\n";
  }
  return 0;
}
