#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int N = 2010;
int n, m, dp[N][N], kol[N][N], q;
vector<pair<int, int> > to[N][N];
inline void solve()
{
cin >> n >> m >> q;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
to[i][j].clear();
for (int i = 0; i < q; i++)
{
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
x1--, x2--, y1--, y2--;
for (int xa1 = x1; xa1 <= x2; xa1++)
for (int ya1 = y1; ya1 <= y2; ya1++)
for (int xa2 = xa1 + 1; xa2 <= x2; xa2++)
for (int ya2 = ya1 + 1; ya2 <= y2; ya2++)
to[xa1][ya1].push_back(make_pair(xa2, ya2));
}
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
sort(to[i][j].begin(), to[i][j].end());
to[i][j].resize(unique(to[i][j].begin(), to[i][j].end()) - to[i][j].begin());
}
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
dp[i][j] = 1;
kol[i][j] = 1;
}
for (int s = 0; s <= (n + m - 2); s++)
for (int i = 0; i < min(s + 1, n); i++)
{
int j = (s - i);
if (j < 0 || j >= m) continue;
for (pair<int, int> t : to[i][j])
{
if (dp[t.first][t.second] > dp[i][j] + 1) continue;
if (dp[t.first][t.second] < dp[i][j] + 1)
{
dp[t.first][t.second] = dp[i][j] + 1;
kol[t.first][t.second] = 0;
}
kol[t.first][t.second] += kol[i][j];
if (kol[t.first][t.second] >= MOD) kol[t.first][t.second] -= MOD;
}
}
int mx = 0;
int ans = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
mx = max(mx, dp[i][j]);
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (mx == dp[i][j])
{
ans += kol[i][j];
if (ans >= MOD) ans -= MOD;
}
cout << mx << " " << ans << "\n";
}
int main()
{
ios::sync_with_stdio(0);
int T;
cin >> T;
for (int z = 0; z < T; z++)
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmNvbnN0IGludCBOID0gMjAxMDsKCmludCBuLCBtLCBkcFtOXVtOXSwga29sW05dW05dLCBxOwp2ZWN0b3I8cGFpcjxpbnQsIGludD4gPiB0b1tOXVtOXTsKCmlubGluZSB2b2lkIHNvbHZlKCkKewoJY2luID4+IG4gPj4gbSA+PiBxOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgkJZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspCgkJCXRvW2ldW2pdLmNsZWFyKCk7Cglmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykKCXsKCQlpbnQgeDEsIHkxLCB4MiwgeTI7CgkJY2luID4+IHgxID4+IHkxID4+IHgyID4+IHkyOwoJCXgxLS0sIHgyLS0sIHkxLS0sIHkyLS07CgkJZm9yIChpbnQgeGExID0geDE7IHhhMSA8PSB4MjsgeGExKyspCgkJCWZvciAoaW50IHlhMSA9IHkxOyB5YTEgPD0geTI7IHlhMSsrKQoJCQkJZm9yIChpbnQgeGEyID0geGExICsgMTsgeGEyIDw9IHgyOyB4YTIrKykKCQkJCQlmb3IgKGludCB5YTIgPSB5YTEgKyAxOyB5YTIgPD0geTI7IHlhMisrKQoJCQkJCQl0b1t4YTFdW3lhMV0ucHVzaF9iYWNrKG1ha2VfcGFpcih4YTIsIHlhMikpOwkJCgl9Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKCQl7CQoJCQlzb3J0KHRvW2ldW2pdLmJlZ2luKCksIHRvW2ldW2pdLmVuZCgpKTsKCQkJdG9baV1bal0ucmVzaXplKHVuaXF1ZSh0b1tpXVtqXS5iZWdpbigpLCB0b1tpXVtqXS5lbmQoKSkgLSB0b1tpXVtqXS5iZWdpbigpKTsJCgkJfQkKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQoJCWZvciAoaW50IGogPSAwOyBqIDwgbTsgaisrKQoJCXsKCQkJZHBbaV1bal0gPSAxOwoJCQlrb2xbaV1bal0gPSAxOwoJCX0KCWZvciAoaW50IHMgPSAwOyBzIDw9IChuICsgbSAtIDIpOyBzKyspCgkJZm9yIChpbnQgaSA9IDA7IGkgPCBtaW4ocyArIDEsIG4pOyBpKyspCgkJewoJCQlpbnQgaiA9IChzIC0gaSk7CgkJCWlmIChqIDwgMCB8fCBqID49IG0pIGNvbnRpbnVlOwoJCQlmb3IgKHBhaXI8aW50LCBpbnQ+IHQgOiB0b1tpXVtqXSkKCQkJewoJCQkJaWYgKGRwW3QuZmlyc3RdW3Quc2Vjb25kXSA+IGRwW2ldW2pdICsgMSkgY29udGludWU7CgkJCQlpZiAoZHBbdC5maXJzdF1bdC5zZWNvbmRdIDwgZHBbaV1bal0gKyAxKSAKCQkJCXsKCQkJCQlkcFt0LmZpcnN0XVt0LnNlY29uZF0gPSBkcFtpXVtqXSArIDE7CgkJCQkJa29sW3QuZmlyc3RdW3Quc2Vjb25kXSA9IDA7CgkJCQl9CgkJCQlrb2xbdC5maXJzdF1bdC5zZWNvbmRdICs9IGtvbFtpXVtqXTsKCQkJCWlmIChrb2xbdC5maXJzdF1bdC5zZWNvbmRdID49IE1PRCkga29sW3QuZmlyc3RdW3Quc2Vjb25kXSAtPSBNT0Q7CgkJCX0KCQl9CglpbnQgbXggPSAwOwoJaW50IGFucyA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKIAkJCW14ID0gbWF4KG14LCBkcFtpXVtqXSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKCQkJaWYgKG14ID09IGRwW2ldW2pdKSAgIAoJCQl7CgkJCQlhbnMgKz0ga29sW2ldW2pdOwoJCQkJaWYgKGFucyA+PSBNT0QpIGFucyAtPSBNT0Q7CgkJCX0KCWNvdXQgPDwgbXggPDwgIiAiIDw8IGFucyA8PCAiXG4iOwkJCQkJCQp9CgppbnQgbWFpbigpCnsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOwoJaW50IFQ7CgljaW4gPj4gVDsKCWZvciAoaW50IHogPSAwOyB6IDwgVDsgeisrKQoJCXNvbHZlKCk7CglyZXR1cm4gMDsKfQ==