#include <bits/stdc++.h>
using namespace std;
int a[1005][1005], b[1001];
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    a[1][i] = i - 1;
    a[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) {
        a[i][j] = a[i - 1][j + 1];
        if (a[i][j] == 0) {
          a[i][j] = a[i - 2][j + 2];
        }
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (a[i][j] == 0 && i != j) {
        for (int w = 1; w <= n; w++) {
          b[a[i][w]] = 1;
          b[a[w][j]] = 1;
        }
        for (int w = 0; w <= n - 1; w++) {
          if (b[w] == 0) {
            a[i][j] = w;
            a[j][i] = w;
            memset(b, 0, sizeof(b));
            break;
          }
        }
      }
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      cout << a[i][j] << " ";
    }
    cout << endl;
  }
  return 0;
}
