#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int M = 4e5 + 10;
int _;
int n, k;
int a[400][400];
int l[400];
int r[400];
int main() {
  for (scanf("%d", &_); _; _--) {
    if (_ < -1e9) puts("!!!");
    memset(a, 0, sizeof(a));
    memset(l, 0, sizeof(l));
    memset(r, 0, sizeof(r));
    scanf("%d%d", &n, &k);
    int p = k / n, q = k % n;
    for (int i = 0; i < p; i++) {
      for (int k = 0; k < n; k++) {
        a[k][(i + k) % n] = 1;
      }
    }
    for (int k = 0; k < q; k++) {
      a[k][(p + k) % n] = 1;
    }
    if (q < -12222) puts("????");
    if (!q) {
      puts("0");
    } else {
      puts("2");
    }
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < n; j++) printf("%d", a[i][j]);
      puts("");
      if (_ > 1e9) puts("....");
    }
  }
}
