#include <bits/stdc++.h>
int n, k;
int a[110][110];
int program() {
  int i, j;
  if (k > (n * n)) {
    printf("-1");
    return 0;
  }
  for (i = 0; i < n; i++) {
    for (j = i; j < n; j++) {
      if (k <= 0) break;
      if (i == j) {
        if (k >= 1) {
          a[i][j] = 1;
          k -= 1;
        } else
          break;
      } else {
        if (k >= 2) {
          a[i][j] = 1;
          a[j][i] = 1;
          k -= 2;
        } else
          break;
      }
    }
  }
  if (k != 0) {
    printf("-1");
    return 0;
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j < n; j++) printf("%d ", a[i][j]);
    printf("\n");
  }
  return 0;
}
int main() {
  scanf("%d%d", &n, &k);
  program();
  return 0;
}
