#include<bits/stdc++.h>
using namespace std;
#define FasterIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
typedef unsigned long long ull;
typedef long long ll;
typedef double db;
#define mem(a,x) memset(a,x,sizeof(a))
#define pb push_back
#define ff first
#define ss second
#define mk make_pair
#define pi pair<int,int>
#define vi vector<int>
#define pL pair<ll,ll>
#define vL vector<ll>
#define vp vector<pi>
#define vpL vector<pL>
const int MX=1000;
const ll inf=1e18;
const ll mod=1e9+7;
int a[MX][MX];
void construct(int n, int m)
{
for(int i=0; i<=m; i++) a[0][i]=i;
int mex=m;
for(int i=1; i<n; i++)
{
a[i][0]=a[i-1][m];
for(int j=1; j<=m; j++) a[i][j]=a[i-1][j-1];
mex--;
}
if(mex>n+1)
{
mex=n+1;
for(int i=n-1; i>=0; i--)
{
for(int j=0; j<m; j++)
{
if(a[i][j]==mex) a[i][j]=mex+1;
}
mex++;
}
}
}
int main()
{
FasterIO;
int tc;
cin>>tc;
while(tc--)
{
int n, m;
cin>>n>>m;
if(n==1 || m==1)
{
if(n==1 && m==1) cout<<0<<endl;
else
{
if(n==1)
{
cout<<0<<' '<<1;
for(int i=3; i<=m; i++) cout<<' '<<i;
cout<<endl;
}
else
{
cout<<0<<endl<<1<<endl;
for(int i=3; i<=n; i++) cout<<i<<endl;
}
}
continue;
}
if(n<=m)
{
construct(n, m);
if(n==m) a[n-1][m-1]=1;
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cout<<a[i][j];
if(j!=m-1) cout<<' ';
else cout<<endl;
}
}
}
else
{
construct(m, n);
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cout<<a[j][i];
if(j!=m-1) cout<<' ';
else cout<<endl;
}
}
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBGYXN0ZXJJTyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCkKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgZG91YmxlIGRiOwoKI2RlZmluZSBtZW0oYSx4KSBtZW1zZXQoYSx4LHNpemVvZihhKSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIG1rIG1ha2VfcGFpcgojZGVmaW5lIHBpIHBhaXI8aW50LGludD4KI2RlZmluZSB2aSB2ZWN0b3I8aW50PgojZGVmaW5lIHBMIHBhaXI8bGwsbGw+CiNkZWZpbmUgdkwgdmVjdG9yPGxsPgojZGVmaW5lIHZwIHZlY3RvcjxwaT4KI2RlZmluZSB2cEwgdmVjdG9yPHBMPgoKY29uc3QgaW50IE1YPTEwMDA7CmNvbnN0IGxsIGluZj0xZTE4Owpjb25zdCBsbCBtb2Q9MWU5Kzc7CgoKaW50IGFbTVhdW01YXTsKCnZvaWQgY29uc3RydWN0KGludCBuLCBpbnQgbSkKewogICAgZm9yKGludCBpPTA7IGk8PW07IGkrKykgYVswXVtpXT1pOwoKICAgIGludCBtZXg9bTsKICAgIGZvcihpbnQgaT0xOyBpPG47IGkrKykKICAgIHsKICAgICAgICBhW2ldWzBdPWFbaS0xXVttXTsKICAgICAgICBmb3IoaW50IGo9MTsgajw9bTsgaisrKSBhW2ldW2pdPWFbaS0xXVtqLTFdOwogICAgICAgIG1leC0tOwogICAgfQoKICAgIGlmKG1leD5uKzEpCiAgICB7CiAgICAgICAgbWV4PW4rMTsKICAgICAgICBmb3IoaW50IGk9bi0xOyBpPj0wOyBpLS0pCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGo9MDsgajxtOyBqKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGFbaV1bal09PW1leCkgYVtpXVtqXT1tZXgrMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBtZXgrKzsKICAgICAgICB9CiAgICB9Cgp9CgppbnQgbWFpbigpCnsKCiAgICBGYXN0ZXJJTzsKCiAgICBpbnQgdGM7CgogICAgY2luPj50YzsKICAgIHdoaWxlKHRjLS0pCiAgICB7CiAgICAgICAgaW50IG4sIG07CiAgICAgICAgY2luPj5uPj5tOwoKICAgICAgICBpZihuPT0xIHx8IG09PTEpCiAgICAgICAgewoKICAgICAgICAgICAgaWYobj09MSAmJiBtPT0xKSBjb3V0PDwwPDxlbmRsOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKG49PTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY291dDw8MDw8JyAnPDwxOwogICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaT0zOyBpPD1tOyBpKyspIGNvdXQ8PCcgJzw8aTsKICAgICAgICAgICAgICAgICAgICBjb3V0PDxlbmRsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNvdXQ8PDA8PGVuZGw8PDE8PGVuZGw7CiAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpPTM7IGk8PW47IGkrKykgY291dDw8aTw8ZW5kbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CgogICAgICAgIGlmKG48PW0pCiAgICAgICAgewogICAgICAgICAgICBjb25zdHJ1Y3QobiwgbSk7CiAgICAgICAgICAgIGlmKG49PW0pIGFbbi0xXVttLTFdPTE7CiAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZm9yKGludCBqPTA7IGo8bTsgaisrKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGNvdXQ8PGFbaV1bal07CiAgICAgICAgICAgICAgICAgICAgaWYoaiE9bS0xKSBjb3V0PDwnICc7CiAgICAgICAgICAgICAgICAgICAgZWxzZSAgICAgICBjb3V0PDxlbmRsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGNvbnN0cnVjdChtLCBuKTsKICAgICAgICAgICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGo9MDsgajxtOyBqKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY291dDw8YVtqXVtpXTsKICAgICAgICAgICAgICAgICAgICBpZihqIT1tLTEpIGNvdXQ8PCcgJzsKICAgICAgICAgICAgICAgICAgICBlbHNlICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQo=