#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;     }   }   