#include <bits/stdc++.h>
using namespace std;
void Solves();
void In(int **a, int n);
int main() {
  Solves();
  return 0;
}
void Solves() {
  long long n, k;
  cin >> n >> k;
  if (k > n * n) {
    cout << -1;
    return;
  }
  int **a = new int *[n + 1];
  for (int i = 0; i <= n; i++) {
    a[i] = new int[n + 1];
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= n; j++) {
      a[i][j] = 0;
    }
  }
  if (k == 0) {
    In(a, n);
    return;
  }
  if (n == 1 && k == 1) {
    cout << 1 << endl;
    return;
  }
  for (int i = 1; i <= n - 1; i++) {
    a[i][i] = 1;
    k--;
    for (int j = i + 1; j <= n; j++) {
      if (k >= 2) {
        a[i][j] = 1;
        a[j][i] = 1;
        k -= 2;
      }
      if (k == 1) {
        a[i + 1][i + 1] = 1;
        k--;
      }
      if (k == 0) {
        In(a, n);
        return;
      }
    }
  }
}
void In(int **a, int n) {
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      cout << a[i][j] << " ";
    }
    cout << endl;
  }
}
