import java.util.Scanner;
import java.util.Queue;
import java.util.LinkedList;
public class Main {
public static void main
(String[] args
) { Scanner in
= new Scanner
(System.
in); int T = in.nextInt();
while (T-- > 0) {
int n = in.nextInt();
int m = in.nextInt();
int[][] grid = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
grid[i][j] = in.nextInt();
}
}
boolean[][] visited = new boolean[n][m];
int count = 0;
int maxSum = 0;
int[] dx = {-1, 1, 0, 0};
int[] dy = {0, 0, -1, 1};
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (grid[i][j] > 0 && !visited[i][j]) {
Queue<int[]> queue = new LinkedList<>();
queue.offer(new int[]{i, j});
visited[i][j] = true;
int sum = grid[i][j];
while (!queue.isEmpty()) {
int[] cell = queue.poll();
for (int k = 0; k < 4; k++) {
int x = cell[0] + dx[k];
int y = cell[1] + dy[k];
if (x >= 0 && x < n && y >= 0 && y < m && !visited[x][y] && grid[x][y] > 0) {
visited[x][y] = true;
sum += grid[x][y];
queue.offer(new int[]{x, y});
}
}
}
count++;
if (sum > maxSum) {
maxSum = sum;
}
}
}
}
System.
out.
println(count
+ " " + maxSum
); }
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwppbXBvcnQgamF2YS51dGlsLlF1ZXVlOwppbXBvcnQgamF2YS51dGlsLkxpbmtlZExpc3Q7CgpwdWJsaWMgY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgU2Nhbm5lciBpbiA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgaW50IFQgPSBpbi5uZXh0SW50KCk7CiAgICAgICAgd2hpbGUgKFQtLSA+IDApIHsKICAgICAgICAgICAgaW50IG4gPSBpbi5uZXh0SW50KCk7CiAgICAgICAgICAgIGludCBtID0gaW4ubmV4dEludCgpOwogICAgICAgICAgICBpbnRbXVtdIGdyaWQgPSBuZXcgaW50W25dW21dOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICBncmlkW2ldW2pdID0gaW4ubmV4dEludCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGJvb2xlYW5bXVtdIHZpc2l0ZWQgPSBuZXcgYm9vbGVhbltuXVttXTsKICAgICAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICAgICAgaW50IG1heFN1bSA9IDA7CiAgICAgICAgICAgIGludFtdIGR4ID0gey0xLCAxLCAwLCAwfTsKICAgICAgICAgICAgaW50W10gZHkgPSB7MCwgMCwgLTEsIDF9OwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoZ3JpZFtpXVtqXSA+IDAgJiYgIXZpc2l0ZWRbaV1bal0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWU8aW50W10+IHF1ZXVlID0gbmV3IExpbmtlZExpc3Q8PigpOwogICAgICAgICAgICAgICAgICAgICAgICBxdWV1ZS5vZmZlcihuZXcgaW50W117aSwgan0pOwogICAgICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW2ldW2pdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN1bSA9IGdyaWRbaV1bal07CiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlICghcXVldWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRbXSBjZWxsID0gcXVldWUucG9sbCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCA0OyBrKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeCA9IGNlbGxbMF0gKyBkeFtrXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgeSA9IGNlbGxbMV0gKyBkeVtrXTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeCA+PSAwICYmIHggPCBuICYmIHkgPj0gMCAmJiB5IDwgbSAmJiAhdmlzaXRlZFt4XVt5XSAmJiBncmlkW3hdW3ldID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW3hdW3ldID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtICs9IGdyaWRbeF1beV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXVlLm9mZmVyKG5ldyBpbnRbXXt4LCB5fSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdW0gPiBtYXhTdW0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFN1bSA9IHN1bTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oY291bnQgKyAiICIgKyBtYXhTdW0pOwogICAgICAgIH0KICAgIH0KfQ==