#include <bits/stdc++.h>

using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int T;
    if(!(cin>>T)){
        return 0;
    }
    vector<vector<vector<char>>>res_all;
    while(T--){
        int n,m;
        cin>>n>>m;
        if((n==1&&m>1)||(m==1&&n>1)){
            res_all.push_back({});
            continue;
        }
        vector<vector<char>>mat(n,vector<char>(m,'1'));
        vector<int>rs(n,m);
        vector<int>cs(m,n);
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                int r_idx=i+1;
                int c_idx=j+1;
                if(rs[i]>r_idx&&cs[j]>c_idx){
                    mat[i][j]='0';
                    rs[i]--;
                    cs[j]--;
                }
            }
        }
        bool ok=true;
        for(int i=0;i<n;i++){
            if(rs[i]==0||rs[i]%(i+1)!=0){
                ok=false;
                break;
            }
        }
        if(ok){
            for(int j=0;j<m;j++){
                if(cs[j]==0||cs[j]%(j+1)!=0){
                    ok=false;
                    break;
                }
            }
        }
        if(ok){
            res_all.push_back(mat);
        }else{
            res_all.push_back({});
        }
    }
    for(int k=0;k<res_all.size();k++){
        if(res_all[k].empty()){
            cout<<"-1\n";
        }else{
            for(int i=0;i<res_all[k].size();i++){
                for(int j=0;j<res_all[k][i].size();j++){
                    cout<<res_all[k][i][j];
                    if(j<res_all[k][i].size()-1){
                        cout<<" ";
                    }
                }
                cout<<"\n";
            }
        }
    }
    return 0;
}