#include <bits/stdc++.h>
using namespace std;
int n;
int mp[1015][1015];
int a[1015 << 2];
int main() {
  int i, j;
  while (~scanf("%d", &n)) {
    for (i = 1; i < n; i++) a[i] = i;
    int l = 1;
    for (i = 1; i <= n - 1; i++) {
      for (j = l; j < l + n - 1; j++) mp[i][j - l + 1] = a[j];
      l++;
      a[n + l - 2] = a[l - 1];
    }
    for (i = 1; i <= n - 1; i++) {
      mp[i][n] = mp[i][i];
      mp[i][i] = 0;
    }
    for (i = 1; i <= n - 1; i++) mp[n][i] = mp[i][n];
    mp[n][n] = 0;
    for (i = 1; i <= n; i++)
      for (j = 1; j <= n; j++) printf("%d%c", mp[i][j], j == n ? '\n' : ' ');
  }
  return 0;
}
