#include <bits/stdc++.h>
using namespace std;
using row = int[100]; int t, h, w; row y, z;
inline int g(int l, int r) { return *max_element(y+l,y+r); }
void solve() {
for (int i = 0; i < h; ++i, memcpy(y,z,sizeof(row)))
for (int j = 0; j < w; cin >> z[j], z[j] += g(max(j-1,0),min(j+2,w)), ++j); }
int main() {
for (cin >> t; t--; memset(y,0,sizeof(row)))
cin >> h >> w, solve(), cout << *max_element(z,z+w) << '\n'; }
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIHJvdyA9IGludFsxMDBdOyBpbnQgdCwgaCwgdzsgcm93IHksIHo7CmlubGluZSBpbnQgZyhpbnQgbCwgaW50IHIpIHsgcmV0dXJuICptYXhfZWxlbWVudCh5K2wseStyKTsgfQp2b2lkIHNvbHZlKCkgewoJZm9yIChpbnQgaSA9IDA7IGkgPCBoOyArK2ksIG1lbWNweSh5LHosc2l6ZW9mKHJvdykpKQoJCWZvciAoaW50IGogPSAwOyBqIDwgdzsgY2luID4+IHpbal0sIHpbal0gKz0gZyhtYXgoai0xLDApLG1pbihqKzIsdykpLCArK2opOyB9CmludCBtYWluKCkgewoJZm9yIChjaW4gPj4gdDsgdC0tOyBtZW1zZXQoeSwwLHNpemVvZihyb3cpKSkKCQljaW4gPj4gaCA+PiB3LCBzb2x2ZSgpLCBjb3V0IDw8ICptYXhfZWxlbWVudCh6LHordykgPDwgJ1xuJzsgfQ==