#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define int long long int mp[410][410]; void solve() { memset(mp,0,sizeof mp); int n,num; cin>>n>>num; if(num) for(int k=0; k<=n-1; k++) { int j=1+k; for(int i=1; i<=n; i++) { mp[i][j]=1; j++; num--; if(num==0) break; if(j==n+1) j=1; } if(num==0) break; } int ans=0; int minv=n+1; int maxv=-1; for(int i=1; i<=n; i++) { int ans1=0; for(int j=1; j<=n; j++) if(mp[i][j]==1) ans1++; minv=min(minv,ans1); maxv=max(maxv,ans1); } ans+=(maxv-minv)*(maxv-minv); minv=n+1; maxv=-1; for(int j=1; j<=n; j++) { int ans1=0; for(int i=1; i<=n; i++) if(mp[i][j]==1) ans1++; minv=min(minv,ans1); maxv=max(maxv,ans1); } ans+=(maxv-minv)*(maxv-minv); cout<<ans<<endl; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) cout<<mp[i][j]; cout<<endl; } } signed main() { int t; cin>>t; while(t--) solve(); }