#include <bits/stdc++.h>
using namespace std;
int pos[1010][1010];
int main() {
  int n, i, j, k;
  memset(pos, 0, sizeof(pos));
  scanf("%d", &n);
  j = 1;
  for (i = 1; i <= n / 2; ++i) {
    pos[n][i] = pos[i][n] = j;
    pos[n][i + n / 2] = pos[i + n / 2][n] = j + 1;
    j += 2;
  }
  for (i = 1; i <= n; ++i) {
    pos[i][i] = 0;
    pos[i][n - i + 1] = 1;
  }
  for (i = 2; i < n; ++i)
    for (j = 1; j <= i / 2; ++j) pos[j][i - j + 1] = pos[i - j + 1][j] = i;
  for (i = 2; i <= n - 3; ++i)
    for (j = 0; j < (n - i - 1) / 2; ++j)
      pos[n - j - 1][i + j + 1] = pos[i + j + 1][n - j - 1] = i;
  for (i = 1; i <= n; ++i) {
    for (j = 1; j <= n; ++j) printf("%d ", pos[i][j]);
    printf("\n");
  }
  return 0;
}
