#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll N = 1e6+5;
const ll INF = 1e9+7;
vector<ll>vis(N, 0);
vector<pair<ll, ll>>v[N];
vector<ll>lvl(N, INF);
ll n, m;
ll get_id(ll a, ll b, ll c){
return a * c + b;
}
void bfs(ll src, ll ww){
set<pair<ll,ll>> st;
st.insert({ww, src});
lvl[src] = ww;
while(!st.empty()){
auto dig = *st.begin();
ll cc = dig.second;
ll dd = dig.first;
st.erase(st.begin());
if(vis[cc]) continue;
vis[cc] = 1;
for(auto val : v[cc]){
ll cur = val.first;
ll wt = val.second;
if(lvl[cc] + wt < lvl[cur]){
lvl[cur] = lvl[cc] + wt;
st.insert({lvl[cur], cur});
}
}
}
}
void solve(){
cin >> n >> m;
ll grid [n][m];
for(ll i = 0; i < n; ++i){
for(ll j = 0; j < m; ++j){
cin >> grid[i][j];
}
}
ll uu, vv;
for(ll i = 0; i < n; ++i){
for(ll j = 0; j < m; ++j){
if(j != m-1){
uu = get_id(i, j, m);
vv = get_id(i, j+1, m);
v[uu].push_back({vv, grid[i][j+1]});
}
if(i != n-1){
uu = get_id(i, j, m);
vv = get_id(i+1, j, m);
v[uu].push_back({vv, grid[i+1][j]});
}
if(j != 0){
uu = get_id(i, j, m);
vv = get_id(i, j-1, m);
v[uu].push_back({vv, grid[i][j-1]});
}
if(i != 0){
uu = get_id(i, j, m);
vv = get_id(i-1, j, m);
v[uu].push_back({vv, grid[i-1][j]});
}
}
}
bfs(0, grid[0][0]);
ll dig = get_id(n-1, m-1, m);
cout << lvl[dig] << endl;
}
signed main(){
ll t;
cin >> t;
while(t--){
for(ll i = 0; i < n * m; ++i){
v[i].clear();
lvl[i] = INF;
vis[i] = 0;
}
solve();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgbGwgTiA9IDFlNis1Owpjb25zdCBsbCBJTkYgPSAxZTkrNzsKCnZlY3RvcjxsbD52aXMoTiwgMCk7CnZlY3RvcjxwYWlyPGxsLCBsbD4+dltOXTsKdmVjdG9yPGxsPmx2bChOLCBJTkYpOwpsbCBuLCBtOwoKbGwgZ2V0X2lkKGxsIGEsIGxsIGIsIGxsIGMpewoJcmV0dXJuIGEgKiBjICsgYjsKfQoKdm9pZCBiZnMobGwgc3JjLCBsbCB3dyl7CgoJc2V0PHBhaXI8bGwsbGw+PiBzdDsKCXN0Lmluc2VydCh7d3csIHNyY30pOwoJbHZsW3NyY10gPSB3dzsKCXdoaWxlKCFzdC5lbXB0eSgpKXsKCQlhdXRvIGRpZyA9ICpzdC5iZWdpbigpOwoJCWxsIGNjID0gZGlnLnNlY29uZDsKCQlsbCBkZCA9IGRpZy5maXJzdDsKCQlzdC5lcmFzZShzdC5iZWdpbigpKTsKCQlpZih2aXNbY2NdKSBjb250aW51ZTsKCQl2aXNbY2NdID0gMTsKCQlmb3IoYXV0byB2YWwgOiB2W2NjXSl7CgkJCWxsIGN1ciA9IHZhbC5maXJzdDsKCQkJbGwgd3QgPSB2YWwuc2Vjb25kOwoJCQlpZihsdmxbY2NdICsgd3QgPCBsdmxbY3VyXSl7CgkJCQlsdmxbY3VyXSA9IGx2bFtjY10gKyB3dDsKCQkJCXN0Lmluc2VydCh7bHZsW2N1cl0sIGN1cn0pOwoJCQl9CgkJfQoJfQp9Cgp2b2lkIHNvbHZlKCl7CgoJY2luID4+IG4gPj4gbTsKCWxsIGdyaWQgW25dW21dOwoJZm9yKGxsIGkgPSAwOyBpIDwgbjsgKytpKXsKCQlmb3IobGwgaiA9IDA7IGogPCBtOyArK2opewoJCQljaW4gPj4gZ3JpZFtpXVtqXTsKCQl9Cgl9CglsbCB1dSwgdnY7Cglmb3IobGwgaSA9IDA7IGkgPCBuOyArK2kpewoJCWZvcihsbCBqID0gMDsgaiA8IG07ICsrail7CgkJCWlmKGogIT0gbS0xKXsKCQkJCXV1ID0gZ2V0X2lkKGksIGosIG0pOwoJCQkJdnYgPSBnZXRfaWQoaSwgaisxLCBtKTsKCQkJCXZbdXVdLnB1c2hfYmFjayh7dnYsIGdyaWRbaV1baisxXX0pOwoJCQl9CgkJCWlmKGkgIT0gbi0xKXsKCQkJCXV1ID0gZ2V0X2lkKGksIGosIG0pOwoJCQkJdnYgPSBnZXRfaWQoaSsxLCBqLCBtKTsKCQkJCXZbdXVdLnB1c2hfYmFjayh7dnYsIGdyaWRbaSsxXVtqXX0pOwoJCQl9CgkJCWlmKGogIT0gMCl7CgkJCQl1dSA9IGdldF9pZChpLCBqLCBtKTsKCQkJCXZ2ID0gZ2V0X2lkKGksIGotMSwgbSk7CgkJCQl2W3V1XS5wdXNoX2JhY2soe3Z2LCBncmlkW2ldW2otMV19KTsKCQkJfQoJCQlpZihpICE9IDApewoJCQkJdXUgPSBnZXRfaWQoaSwgaiwgbSk7CgkJCQl2diA9IGdldF9pZChpLTEsIGosIG0pOwoJCQkJdlt1dV0ucHVzaF9iYWNrKHt2diwgZ3JpZFtpLTFdW2pdfSk7CgkJCX0KCQl9Cgl9CgliZnMoMCwgZ3JpZFswXVswXSk7CglsbCBkaWcgPSBnZXRfaWQobi0xLCBtLTEsIG0pOwoJY291dCA8PCBsdmxbZGlnXSA8PCBlbmRsOwp9CgpzaWduZWQgbWFpbigpewoKCWxsIHQ7CgljaW4gPj4gdDsKCXdoaWxlKHQtLSl7CgkJZm9yKGxsIGkgPSAwOyBpIDwgbiAqIG07ICsraSl7CgkJCXZbaV0uY2xlYXIoKTsKCQkJbHZsW2ldID0gSU5GOwoJCQl2aXNbaV0gPSAwOwogICAgICAgIH0KCQlzb2x2ZSgpOwoJfQp9