#include <bits/stdc++.h>
int mp[1100][1100] = {0};
int main() {
  int n, i, j, x, y;
  scanf("%d", &n);
  int m[1100];
  j = 1;
  for (i = 2; i < n; i += 2) m[j++] = i;
  for (i = 1; i < n; i += 2) m[j++] = i;
  for (i = 1; i < n; i++) {
    y = i;
    x = 0;
    while (x < n && y >= 0) {
      if (x != y) mp[x][y] = i;
      x += 1;
      y -= 1;
    }
  }
  for (i = 1; i < n - 3; i++) {
    y = i + 1;
    x = n - 2;
    while (x > 1 && y < n - 1) {
      if (x != y) mp[x][y] = i;
      x -= 1;
      y += 1;
    }
  }
  for (i = 1; i < n - 1; i++) {
    mp[i][n - 1] = m[i];
    mp[n - 1][i] = m[i];
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) printf("%d ", mp[i][j]);
    printf("\n");
  }
  return 0;
}
