#include <iostream>
#include <vector>
using namespace std;
void solve(){
        int n;
        cin>>n;
        int k;
        cin>>k;
        if (k<n || k == n*2) {
                cout<<-1<<"\n";
                return;
        }
        else {
                vector<vector<int>> grid(n, vector<int>(n, 0));
                int m=0;
                int num = 1;
                //fill diagonal cells
                while (n*2-k-m!=0){
                        grid[num-1][num-1] = num;
                        m++;
                        num++;
                }
                //fill the rest
                for(int r = 0; r<n; r++){
                        for (int c = 0; c<n; c++){
                                if (grid[r][c] == 0){
                                        grid[r][c] = num;
                                        num++;
                                }
                        }
                }
                for (int r = 0; r<n; r++){
                        for (int c = 0; c<n;c++){
                                cout<<grid[r][c]<<" ";
                        }
                        cout<<"\n";
                }
        }
}
int main(){
        ios_base::sync_with_stdio(false);
        cin.tie(nullptr);
        int t;
        cin>>t;
        while (t--){
                solve();
        }
        return 0;
}