#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, l[N][N], u[N][N];
inline void solve()
{
cin >> n >> m >> q;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
l[i][j] = j, u[i][j] = i;
for (int i = 0; i < q; i++)
{
int x1, y1, x2, y2;
cin >> x1 >> y1 >> x2 >> y2;
x1--, x2--, y1--, y2--;
if (x1 == x2 || y1 == y2) continue;
for (int x = x1 + 1; x <= x2; x++)
for (int y = y1 + 1; y <= y2; y++)
l[x][y] = min(l[x][y], y1), u[x][y] = min(u[x][y], x1);
}
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;
dp[i][j] = 1;
kol[i][j] = 1;
if (i == 0 || j == 0) continue;
for (int y = l[i][j]; y < j; y++)
if (dp[i][j] <= dp[i - 1][y] + 1)
{
if (dp[i][j] < dp[i - 1][y] + 1)
{
dp[i][j] = dp[i - 1][y] + 1;
kol[i][j] = 0;
}
kol[i][j] += kol[i - 1][y];
if (kol[i][j] >= MOD) kol[i][j] -= MOD;
}
for (int x = u[i][j]; x < i; x++)
if (dp[i][j] <= dp[x][j - 1] + 1)
{
if (dp[i][j] < dp[x][j - 1] + 1)
{
dp[i][j] = dp[x][j - 1] + 1;
kol[i][j] = 0;
}
kol[i][j] += kol[x][j - 1];
if (kol[i][j] >= MOD) kol[i][j] -= MOD;
}
if (l[i][j] < j && u[i][j] < i && dp[i][j] == dp[i - 1][j - 1] + 1)
{
kol[i][j] -= kol[i - 1][j - 1];
if (kol[i][j] < 0) kol[i][j] += 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+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmNvbnN0IGludCBOID0gMjAxMDsKCmludCBuLCBtLCBkcFtOXVtOXSwga29sW05dW05dLCBxLCBsW05dW05dLCB1W05dW05dOwoKaW5saW5lIHZvaWQgc29sdmUoKQp7CgljaW4gPj4gbiA+PiBtID4+IHE7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKCQkJbFtpXVtqXSA9IGosIHVbaV1bal0gPSBpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBxOyBpKyspCgl7CgkJaW50IHgxLCB5MSwgeDIsIHkyOwoJCWNpbiA+PiB4MSA+PiB5MSA+PiB4MiA+PiB5MjsKCQl4MS0tLCB4Mi0tLCB5MS0tLCB5Mi0tOwoJCWlmICh4MSA9PSB4MiB8fCB5MSA9PSB5MikgY29udGludWU7CgkJZm9yIChpbnQgeCA9IHgxICsgMTsgeCA8PSB4MjsgeCsrKQoJCQlmb3IgKGludCB5ID0geTEgKyAxOyB5IDw9IHkyOyB5KyspCgkJCQlsW3hdW3ldID0gbWluKGxbeF1beV0sIHkxKSwgdVt4XVt5XSA9IG1pbih1W3hdW3ldLCB4MSk7Cgl9Cglmb3IgKGludCBzID0gMDsgcyA8PSAobiArIG0gLSAyKTsgcysrKQoJCWZvciAoaW50IGkgPSAwOyBpIDwgbWluKHMgKyAxLCBuKTsgaSsrKQoJCXsKCQkJaW50IGogPSAocyAtIGkpOwoJCQlpZiAoaiA8IDAgfHwgaiA+PSBtKSBjb250aW51ZTsKCQkJZHBbaV1bal0gPSAxOwoJCQlrb2xbaV1bal0gPSAxOwoJCQlpZiAoaSA9PSAwIHx8IGogPT0gMCkgY29udGludWU7CgkJCWZvciAoaW50IHkgPSBsW2ldW2pdOyB5IDwgajsgeSsrKQoJCQkJaWYgKGRwW2ldW2pdIDw9IGRwW2kgLSAxXVt5XSArIDEpCgkJCQl7CgkJCQkJaWYgKGRwW2ldW2pdIDwgZHBbaSAtIDFdW3ldICsgMSkKCQkJCQl7CQoJCQkJCQlkcFtpXVtqXSA9IGRwW2kgLSAxXVt5XSArIDE7ICAgIAoJCQkJCQlrb2xbaV1bal0gPSAwOwoJCQkJCX0KCQkJCQlrb2xbaV1bal0gKz0ga29sW2kgLSAxXVt5XTsKCQkJCQlpZiAoa29sW2ldW2pdID49IE1PRCkga29sW2ldW2pdIC09IE1PRDsKCQkJCX0KCQkJZm9yIChpbnQgeCA9IHVbaV1bal07IHggPCBpOyB4KyspCgkJCQlpZiAoZHBbaV1bal0gPD0gZHBbeF1baiAtIDFdICsgMSkKCQkJCXsKCQkJCQlpZiAoZHBbaV1bal0gPCBkcFt4XVtqIC0gMV0gKyAxKQoJCQkJCXsJCgkJCQkJCWRwW2ldW2pdID0gZHBbeF1baiAtIDFdICsgMTsKCQkJCQkJa29sW2ldW2pdID0gMDsKCQkJCQl9CgkJCQkJa29sW2ldW2pdICs9IGtvbFt4XVtqIC0gMV07CgkJCQkJaWYgKGtvbFtpXVtqXSA+PSBNT0QpIGtvbFtpXVtqXSAtPSBNT0Q7CgkJCQl9CgkJCWlmIChsW2ldW2pdIDwgaiAmJiB1W2ldW2pdIDwgaSAmJiBkcFtpXVtqXSA9PSBkcFtpIC0gMV1baiAtIDFdICsgMSkKCQkJewoJCQkJa29sW2ldW2pdIC09IGtvbFtpIC0gMV1baiAtIDFdOwoJCQkJaWYgKGtvbFtpXVtqXSA8IDApIGtvbFtpXVtqXSArPSBNT0Q7CgkJCX0KCQl9ICAgCglpbnQgbXggPSAwOwoJaW50IGFucyA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKIAkJCW14ID0gbWF4KG14LCBkcFtpXVtqXSk7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKCQlmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykKCQkJaWYgKG14ID09IGRwW2ldW2pdKSAgIAoJCQl7CgkJCQlhbnMgKz0ga29sW2ldW2pdOwoJCQkJaWYgKGFucyA+PSBNT0QpIGFucyAtPSBNT0Q7CgkJCX0KCWNvdXQgPDwgbXggPDwgIiAiIDw8IGFucyA8PCAiXG4iOwkJCQkJCQkJCn0KCmludCBtYWluKCkKewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CglpbnQgVDsKCWNpbiA+PiBUOwoJZm9yIChpbnQgeiA9IDA7IHogPCBUOyB6KyspCgkJc29sdmUoKTsKCXJldHVybiAwOwp9