#include<bits/stdc++.h>
using namespace std;
typedef long long int lli;
vector < vector <bool> > grid(1001, vector <bool> (1001));
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int t;
cin >> t;
while (t--)
{
int n, m;
cin >> n >> m;
int j = 0, i = 0;
vector <lli> v;
v.push_back(n * m);
for (int k = 1; k <= n * m - 1; k++)
{
lli curans = 0;
for (; j < m;)
{
grid[i][j] = 1;
curans++;
j += (k + 1) % m;
i += (k + 1) / m;
}
j = 0, i = 0;
for (; i < n;)
{
if (!grid[i][j])
{
grid[i][j] = 1;
curans++;
}
j += (k + 1) / n;
i += (k + 1) % n;
}
v.push_back(curans);
for (; j < m;)
{
grid[i][j] = 0;
int diff = k + 1;
j += diff % m;
i += diff / m;
}
j = 0, i = 0;
for (; i < n;)
{
grid[i][j] = 0;
int diff = k + 1;
j += diff / n;
i += diff % n;
}
}
for (auto x : v)
{
cout << x << " ";
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgaW50IGxsaTsKCnZlY3RvciA8IHZlY3RvciA8Ym9vbD4gPiBncmlkKDEwMDEsIHZlY3RvciA8Ym9vbD4gKDEwMDEpKTsKCmludCBtYWluKCkKewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKE5VTEwpOwoJY291dC50aWUoTlVMTCk7CgoJaW50IHQ7CgljaW4gPj4gdDsKCXdoaWxlICh0LS0pCgl7CgkJaW50IG4sIG07CgkJY2luID4+IG4gPj4gbTsKCQlpbnQgaiA9IDAsIGkgPSAwOwoJCXZlY3RvciA8bGxpPiB2OwoJCXYucHVzaF9iYWNrKG4gKiBtKTsKCQlmb3IgKGludCBrID0gMTsgayA8PSBuICogbSAtIDE7IGsrKykKCQl7CgkJCWxsaSBjdXJhbnMgPSAwOwoJCQlmb3IgKDsgaiA8IG07KQoJCQl7CgkJCQlncmlkW2ldW2pdID0gMTsKCQkJCWN1cmFucysrOwoJCQkJaiArPSAoayArIDEpICUgbTsKCQkJCWkgKz0gKGsgKyAxKSAvIG07CgkJCX0KCQkJaiA9IDAsIGkgPSAwOwoJCQlmb3IgKDsgaSA8IG47KQoJCQl7CgkJCQlpZiAoIWdyaWRbaV1bal0pCgkJCQl7CgkJCQkJZ3JpZFtpXVtqXSA9IDE7CgkJCQkJY3VyYW5zKys7CgkJCQl9CgkJCQlqICs9IChrICsgMSkgLyBuOwoJCQkJaSArPSAoayArIDEpICUgbjsKCQkJfQoKCQkJdi5wdXNoX2JhY2soY3VyYW5zKTsKCgkJCWZvciAoOyBqIDwgbTspCgkJCXsKCQkJCWdyaWRbaV1bal0gPSAwOwoJCQkJaW50IGRpZmYgPSBrICsgMTsKCQkJCWogKz0gZGlmZiAlIG07CgkJCQlpICs9IGRpZmYgLyBtOwoJCQl9CgkJCWogPSAwLCBpID0gMDsKCQkJZm9yICg7IGkgPCBuOykKCQkJewoJCQkJZ3JpZFtpXVtqXSA9IDA7CgkJCQlpbnQgZGlmZiA9IGsgKyAxOwoJCQkJaiArPSBkaWZmIC8gbjsKCQkJCWkgKz0gZGlmZiAlIG47CgkJCX0KCQl9CgkJZm9yIChhdXRvIHggOiB2KQoJCXsKCQkJY291dCA8PCB4IDw8ICIgIjsKCQl9Cgl9CgoJcmV0dXJuIDA7Cn0=