#include <bits/stdc++.h>
using namespace std;
const int maxN = 6 + 7;
const int maxM = 6 + 7;
int n, m;
int ans;
int sum;
int matrix[maxN][maxM];
int check[maxN][maxM];
int walk[16][2] = {
{-2, 0}, {-2, 1}, {-2, 2}, {-1, 2},
{0, 2}, {1, 2}, {2, 2}, {2, 1},
{2, 0}, {2, -1}, {2, -2}, {1, -2},
{0, -2}, {-1, -2}, {-2, -2}, {-2, -1}
};
vector<int> res;
void dfs(int r, int c) {
if (sum > ans) ans = sum;
for (int i = 0; i < 16; i ++) {
if (check[r + walk[i][0]][c + walk[i][1]]
|| r + walk[i][0] > n
|| r + walk[i][0] < 1
|| c + walk[i][1] > m
|| c + walk[i][1] < 1
) continue;
for (int j = r + walk[i][0] - 1; j <= r + walk[i][0] + 1; j ++)
for (int k = c + walk[i][1] - 1; k <= c + walk[i][1] + 1; k ++)
check[j][k] ++;
sum += matrix[r + walk[i][0]][c + walk[i][1]];
dfs(r + walk[i][0], c + walk[i][1]);
for (int j = r + walk[i][0] - 1; j <= r + walk[i][0] + 1; j ++)
for (int k = c + walk[i][1] - 1; k <= c + walk[i][1] + 1; k ++)
check[j][k] --;
sum -= matrix[r + walk[i][0]][c + walk[i][1]];
}
}
int main() {
int t; cin >> t;
while (t --) {
cin >> n >> m;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m; j ++)
cin >> matrix[i][j];
ans = 0;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m; j ++) {
memset(check, 0, sizeof(check));
sum = matrix[i][j];
for (int k = i - 1; k <= i + 1; k ++)
for (int l = j - 1; l <= j + 1; l ++)
check[k][l] ++;
dfs(i, j);
}
res.push_back(ans);
}
for (int i = 0; i < res.size(); i ++) cout << res[i] << endl;
}