#include <bits/stdc++.h>
using namespace std;
void prepare() {}
int n, a[1005][1005];
void solve() {
  memset((a), 0, sizeof(a));
  cin >> n;
  int i, j, k = 1;
  for (i = (0); i < (((n))); i++) {
    for (j = (i + 1); j < (n - i); j++) a[j][i] = a[i][j] = k + j - i - 1;
    k += 2;
  }
  k = 2;
  for (i = (1); i < (n); i++) {
    a[i][n - 1] = k % (n - 1);
    int x = i + 1;
    for (j = n - 2; j >= 0 && x < n; j--, x++) a[x][j] = k / 2;
    a[x - 1][j + 1] = a[i][n - 1];
    k += 2;
  }
  for (i = (0); i < (((n))); i++) a[i][i] = 0;
  for (i = (0); i < (((n))); i++) {
    for (j = (0); j < (((n))); j++) printf("%d ", a[i][j]);
    printf("\n");
  }
}
int main() {
  prepare();
  solve();
  return 0;
}
