#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 7;
struct edge {
  int u, v, t, fl;
} e[N * N];
bool ft[N * N];
int n, m, s, t, tot, cnt, f[N * N], op[N * N], dis[N * N], pre[N * N], q[N * N];
int w[N][N], fl[N][N];
inline int read() {
  int num = 0;
  char g = getchar();
  while (g < 48 || 57 < g) g = getchar();
  while (47 < g && g < 58)
    num = (num << 1) + (num << 3) + g - 48, g = getchar();
  return num;
}
inline void addedge(int u, int v, int t, int fl) {
  tot++, e[tot].u = v, e[tot].v = t, e[tot].t = f[u], e[tot].fl = fl,
         f[u] = tot;
}
inline void add(int u, int v, int t) {
  addedge(u, v, t, 1), addedge(v, u, -t, 0);
}
inline bool spfa() {
  for (int i = 1; i <= cnt; i++) dis[i] = 19260817;
  int l = 1, r = 1;
  dis[s] = 0, q[1] = s;
  while (l <= r) {
    int u = q[l++];
    ft[u] = 0;
    for (int i = f[u]; i > 0; i = e[i].t) {
      int x = e[i].u;
      if (e[i].fl == 0) continue;
      if (dis[x] > dis[u] + e[i].v) {
        dis[x] = dis[u] + e[i].v, pre[x] = i;
        if (!ft[x]) ft[x] = 1, q[++r] = x;
      }
    }
  }
  if (dis[t] == 19260817) return false;
  int u = t;
  while (u != s) e[pre[u]].fl ^= 1, e[pre[u] ^ 1].fl ^= 1, u = e[pre[u] ^ 1].u;
  return true;
}
int main() {
  n = read(), m = read();
  tot = 1, cnt = 2 * n + 2;
  for (int i = 1; i <= m; i++) s = read(), t = read(), fl[s][t] = 1, op[s]++;
  for (int i = 1; i <= n; i++)
    for (int x = op[i]; x <= n; x++) add(2 * n + 1, i, x);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) {
      if (i <= j || fl[i][j] || fl[j][i]) continue;
      cnt++, w[i][j] = tot + 1, add(i, cnt, 0), w[j][i] = tot + 1,
             add(j, cnt, 0), add(cnt, 2 * n + 2, 0);
    }
  s = 2 * n + 1, t = 2 * n + 2;
  while (spfa())
    ;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (i == j)
        putchar('0');
      else if (fl[i][j])
        putchar('1');
      else if (fl[i][j] + fl[j][i])
        putchar('0');
      else if (e[w[i][j]].fl)
        putchar('0');
      else
        putchar('1');
    }
    puts("");
  }
  return 0;
}
