#include <bits/stdc++.h>
using namespace std;
const int N = 1666;
int G[N][N];
int n;
int st[N];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    G[1][i] = i - 1;
    G[i][1] = i - 1;
  }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      if (i == j || i == 1 || j == n) continue;
      G[i][j] = G[i - 1][j + 1];
      if (G[i][j] == 0) {
        G[i][j] = G[i - 2][j + 2];
      }
    }
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      if (G[i][j] || i == j) continue;
      for (int k = 1; k <= n; k++) {
        st[G[i][k]] = 1;
        st[G[k][j]] = 1;
      }
      for (int k = 0; k < n; k++) {
        if (!st[k]) {
          G[i][j] = k;
          G[j][i] = k;
          memset(st, 0, sizeof(st));
          break;
        }
      }
    }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) cout << G[i][j] << ' ';
    cout << endl;
  }
  return 0;
}
