#include <bits/stdc++.h>
using namespace std;
const int Maxn = 1000 + 10;
const int INF = 0x7f7f7f7f;
const double eps = 1e-10;
const double pi = acos(-1.0);
inline int compare(double a, double b) {
  return (a > b + eps) ? 1 : ((a + eps < b) ? -1 : 0);
}
int a[Maxn][Maxn];
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n - 1; i++)
    for (int j = 0; j < n - 1; j++) {
      int t = i + j;
      if (t >= n - 1) t -= n - 1;
      a[i][j] = 1 + t;
    }
  for (int i = 0; i < n - 1; i++) {
    a[i][n - 1] = a[n - 1][i] = a[i][i];
    a[i][i] = 0;
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) printf("%d ", a[i][j]);
    printf("\n");
  }
  return 0;
}
