#include <bits/stdc++.h>
using namespace std;
void solve(), solve1();
int main(int argc, const char* argv[]) {
  srand((unsigned int)time(0));
  ios::sync_with_stdio(0);
  cin.tie(0);
  ;
  solve();
  return 0;
}
long long mod = 1e9;
long long inf = 2 * 1e18;
void solve() {
  long long n;
  cin >> n;
  vector<vector<long long>> a(n, vector<long long>(n));
  for (long long i = 0; i < n - 1; i++)
    for (long long j = 0; j < n - 1; j++) a[i][j] = 1 + (i + j) % (n - 1);
  for (long long i = 0; i < n - 1; i++) a[n - 1][i] = a[i][n - 1] = a[i][i];
  for (long long i = 0; i < n; i++) a[i][i] = 0;
  for (long long i = 0; i < n; i++, cout << endl)
    for (long long j = 0; j < n; cout << a[i][j] << " ", j++)
      ;
}
