#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const int INF = 0x3f3f3f3f;
int mapp[101][101];
int main() {
  int n, k, sum = 0;
  scanf("%d%d", &n, &k);
  memset(mapp, 0, sizeof(mapp));
  if (k > n * n) {
    cout << -1;
    return 0;
  }
  for (int i = 1; i < n + 1; i++) {
    for (int j = 1; j < n + 1; j++) {
      if (mapp[i][j]) {
        continue;
      } else {
        if (i == j and k) {
          mapp[i][j] = 1;
          k--;
          continue;
        }
        if (k >= 2) {
          k -= 2;
          mapp[i][j] = mapp[j][i] = 1;
        }
      }
    }
  }
  for (int i = 1; i < n + 1; i++) {
    for (int j = 1; j < n + 1; j++) {
      cout << mapp[i][j] << " ";
    }
    cout << endl;
  }
  return 0;
}
