#include <bits/stdc++.h>
using namespace std;
int dp[25][25];
set<int> s;
int main() {
  int n;
  cin >> n;
  dp[1][2] = dp[2][1] = 3;
  dp[1][3] = dp[3][1] = 4;
  dp[2][3] = dp[3][2] = 5;
  for (int i = 6; i <= 1000; i++) s.insert(i);
  s.insert(1);
  s.insert(2);
  for (int len = 4; len <= n; len++) {
    for (int i = 1; i < len; i++) {
      if (i == 1)
        dp[i][len] = dp[len][i] = *s.begin();
      else if (i != len - 1)
        dp[i][len] = dp[len][i] = dp[i][len - 1] + dp[1][len] - dp[1][len - 1];
      else
        dp[i][len] = dp[len][i] =
            (-dp[1][len - 2] + dp[1][len] + dp[len - 2][len]) -
            (-dp[1][len - 1] + dp[1][len]);
      if (s.find(dp[i][len]) == s.end()) {
        s.erase(s.begin());
        i = 0;
        continue;
      }
    }
    for (int i = 1; i < len; i++) s.erase(dp[i][len]);
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) cout << dp[i][j] << " ";
    cout << endl;
  }
}
