#include <bits/stdc++.h>
using namespace std;
const int N = 100 + 5;
int n, a[N][N], k;
int main() {
  scanf("%d%d", &n, &k);
  if (k > n * n) return puts("-1"), 0;
  int i = 1, j = 1, d = 1;
  while (k) {
    if (i == j) {
      if (k % 2 == 0 && d == n) goto TAG;
      a[i][i] = 1;
      d++;
      k--;
      j++;
      continue;
    }
  TAG:
    if (a[i][j] == 0 && k > 1) {
      a[i][j] = a[j][i] = 1;
      k -= 2;
    }
    if (++j > n) {
      i++;
      j = 1;
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      printf("%d%c", a[i][j], " \n"[j == n]);
    }
  }
  return 0;
}
