#include <bits/stdc++.h>
int n;
int a[1111][1111];
int sumr[1111], sumc[1111];
void add(int i, int j, int x) {
  a[i][j] = x;
  sumr[i] += x;
  sumc[j] += x;
}
void output() {
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) printf("%d ", a[i][j]);
    puts("");
  }
}
int main() {
  scanf("%d", &n);
  int tot = n * (n - 1) / 2;
  for (int i = 1; i < n; i++) {
    for (int j = 0; j <= i; j++) {
      if (i - j != j) add(i - j, j, i);
    }
  }
  for (int i = 1; i < n / 2; i++) {
    add(n - 1, i, i * 2);
    add(i, n - 1, i * 2);
    for (int j = 1; j < n - 1 - i; j++) {
      if (n - 1 - j != i + j) add(n - 1 - j, i + j, i);
    }
  }
  for (int i = n / 2; i < n - 1; i++) {
    add(n - 1, i, 1 + 2 * (i - n / 2));
    add(i, n - 1, 1 + 2 * (i - n / 2));
    if (i == n - 2 || i == n / 2) continue;
    int x = tot - sumc[i];
    for (int j = i; j < n - 1; j++) {
      if (j != n - 2 - j + i) add(n - 2 - j + i, j, x);
    }
  }
  output();
}
