//
// Created by Dishant on 16-05-2018.
//
#include<bits/stdc++.h>
using namespace std;
/*#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
/*template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
*/ typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair< ll,ll> pl;
typedef pair< int ,int > pii;
#define LOCAL 0
#define dbg(x) cout << #x << " is " << x << "\n"
#define gll(x) scanf("%d",&x)
#define gll2(x,y) scanf("%d%d",&x,&y)
#define gll3(x,y,z) scanf("%d%d%d",&x,&y,&y)
#define gllarr(arr,n) f(i,n) gll(arr[i]);
#define sz(x) ((int)x.size())
#define s(x) sort(x.begin(),x.end())
#define all(v) v.begin(),v.end()
#define rs(v) { s(v) ; r(v) ; }
#define r(v) {reverse(all(v));}
#define pb push_back
#define F first
#define S second
#define f(i,n) for(int i=0;i<n;i++)
#define fr(i,n) for(int i=n-1;i>=0;i--)
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define repr(i,a,b) for(int i=a;i>=b;i--)
const ll mod = 1000000007 ;
const ll inf = ( ll) 1e17 ;
const ld eps = 1e-12 ;
const ll N = ( int ) 1e5 + 5 ;
const ll LOGN = 19 ;
const ld PI = 3.14159265358979323846 ;
ll mul( ll a, ll b, ll m = mod) { return ( ll) ( a * b) % m; }
ll add( ll a, ll b, ll m = mod) { a + = b; if ( a >= m) a - = m; if ( a < 0 ) a + = m; return a; }
ll power( ll a, ll b, ll m = mod) { if ( b == 0 ) return 1 ; if ( b == 1 ) return ( a % m) ; ll x = power( a, b / 2 , m) ; x = mul( x, x, m) ; if ( b % 2 ) x = mul( x, a, m) ; return x; }
int main( ) {
ios_base:: sync_with_stdio ( false ) ;
cin .tie ( NULL ) ;
if ( LOCAL) {
freopen ( "C:\\ Users\\ Dishant\\ Desktop\\ Collection-DEV c++\\ input.txt" , "r" , stdin ) ;
freopen ( "C:\\ Users\\ Dishant\\ Desktop\\ Collection-DEV c++\\ output.txt" , "w" , stdout ) ;
}
int t;
cin >> t;
while ( t-- ) {
int r, c;
cin >> r >> c;
int a[ r + 2 ] [ c + 2 ] ;
ll dp[ r + 2 ] [ c + 2 ] ; //Stores the maximum value of path from (1,1) -> (r,c)
ll minimum[ r + 2 ] [ c + 2 ] ; //Stores the minimum value encountered in path (1,1) -> (r,c)
rep( i,1 ,r)
{
rep( j,1 ,c)
cin >> a[ i] [ j] ;
}
f( i,r+ 2 )
{
f( j,c+ 2 )
{
dp[ i] [ j] = - inf;
minimum[ i] [ j] = inf;
}
}
rep( i,1 ,r)
{
rep( j,1 ,c)
{
if ( i == 1 && j == 1 )
dp[ i] [ j] = a[ i] [ j] ,minimum[ i] [ j] = a[ i] [ j] ;
else {
if ( dp[ i- 1 ] [ j] > dp[ i] [ j- 1 ] ) {
dp[ i] [ j] = dp[ i- 1 ] [ j] + a[ i] [ j] ;
minimum[ i] [ j] = min( dp[ i] [ j] ,minimum[ i- 1 ] [ j] ) ;
}
else {
dp[ i] [ j] = dp[ i] [ j- 1 ] + a[ i] [ j] ;
minimum[ i] [ j] = min( dp[ i] [ j] ,minimum[ i] [ j- 1 ] ) ;
}
}
}
}
assert ( minimum[ r] [ c] ! = inf) ;
cout << 1 - minimum[ r] [ c] << endl;
}
return 0 ;
}
Ly8KLy8gQ3JlYXRlZCBieSBEaXNoYW50IG9uIDE2LTA1LTIwMTguCi8vCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8qI2luY2x1ZGU8ZXh0L3BiX2RzL2Fzc29jX2NvbnRhaW5lci5ocHA+CiNpbmNsdWRlPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwovKnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp1c2luZyBvcmRlcmVkX3NldCA9IHRyZWU8VCwgbnVsbF90eXBlLCBsZXNzPFQ+LCByYl90cmVlX3RhZywgdHJlZV9vcmRlcl9zdGF0aXN0aWNzX25vZGVfdXBkYXRlPjsKKi90eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIGxvbmcgZG91YmxlIGxkOwp0eXBlZGVmIHBhaXI8bGwsbGw+IHBsOwp0eXBlZGVmIHBhaXI8aW50LGludD4gcGlpOwoKI2RlZmluZSBMT0NBTCAwCiNkZWZpbmUgZGJnKHgpIGNvdXQgPDwgI3ggPDwgIiBpcyAiIDw8IHggPDwgIlxuIgojZGVmaW5lIGdsbCh4KSBzY2FuZigiJWQiLCZ4KQojZGVmaW5lIGdsbDIoeCx5KSBzY2FuZigiJWQlZCIsJngsJnkpCiNkZWZpbmUgZ2xsMyh4LHkseikgc2NhbmYoIiVkJWQlZCIsJngsJnksJnkpCiNkZWZpbmUgZ2xsYXJyKGFycixuKSBmKGksbikgZ2xsKGFycltpXSk7CiNkZWZpbmUgc3ooeCkgKChpbnQpeC5zaXplKCkpCiNkZWZpbmUgcyh4KSBzb3J0KHguYmVnaW4oKSx4LmVuZCgpKQojZGVmaW5lIGFsbCh2KSB2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lIHJzKHYpIHsgcyh2KSA7IHIodikgOyB9CiNkZWZpbmUgcih2KSB7cmV2ZXJzZShhbGwodikpO30KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBmKGksbikgZm9yKGludCBpPTA7aTxuO2krKykKI2RlZmluZSBmcihpLG4pIGZvcihpbnQgaT1uLTE7aT49MDtpLS0pCiNkZWZpbmUgcmVwKGksYSxiKSBmb3IoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSByZXByKGksYSxiKSBmb3IoaW50IGk9YTtpPj1iO2ktLSkKCmNvbnN0IGxsIG1vZCA9IDEwMDAwMDAwMDc7CmNvbnN0IGxsIGluZiA9IChsbCkxZTE3Owpjb25zdCBsZCBlcHMgPSAxZS0xMjsKY29uc3QgbGwgTiA9IChpbnQpMWU1KzU7CmNvbnN0IGxsIExPR04gPSAxOTsKY29uc3QgbGQgUEkgPSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2OwpsbCBtdWwobGwgYSwgbGwgYiwgbGwgbSA9IG1vZCkgeyByZXR1cm4gKGxsKShhICogYikgJSBtO30KbGwgYWRkKGxsIGEsIGxsIGIsIGxsIG0gPSBtb2QpIHsgYSArPSBiOyBpZihhID49IG0pIGEgLT0gbTsgaWYoYSA8IDApIGEgKz0gbTsgcmV0dXJuIGE7fQpsbCBwb3dlcihsbCBhLCBsbCBiLCBsbCBtID0gbW9kKSB7IGlmKGIgPT0gMCkgcmV0dXJuIDE7IGlmKGIgPT0gMSkgcmV0dXJuIChhICUgbSk7IGxsIHggPSBwb3dlcihhLCBiIC8gMiwgbSk7IHggPSBtdWwoeCwgeCwgbSk7IGlmKGIgJSAyKSB4ID0gbXVsKHgsIGEsIG0pOyByZXR1cm4geDt9CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGlmIChMT0NBTCkgewogICAgICAgIGZyZW9wZW4oIkM6XFxVc2Vyc1xcRGlzaGFudFxcRGVza3RvcFxcQ29sbGVjdGlvbi1ERVYgYysrXFxpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJDOlxcVXNlcnNcXERpc2hhbnRcXERlc2t0b3BcXENvbGxlY3Rpb24tREVWIGMrK1xcb3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSh0LS0pIHsKICAgICAgICBpbnQgciwgYzsKICAgICAgICBjaW4gPj4gciA+PiBjOwogICAgICAgIGludCBhW3IgKyAyXVtjICsgMl07CiAgICAgICAgbGwgZHBbciArIDJdW2MgKyAyXTsgICAgICAgICAgICAvL1N0b3JlcyB0aGUgbWF4aW11bSB2YWx1ZSBvZiBwYXRoIGZyb20gKDEsMSkgLT4gKHIsYykKICAgICAgICBsbCBtaW5pbXVtW3IgKyAyXVtjICsgMl07ICAgICAgIC8vU3RvcmVzIHRoZSBtaW5pbXVtIHZhbHVlIGVuY291bnRlcmVkIGluIHBhdGggKDEsMSkgLT4gKHIsYykKICAgICAgICByZXAoaSwxLHIpCiAgICAgICAgewogICAgICAgICAgICByZXAoaiwxLGMpCiAgICAgICAgICAgICAgICBjaW4gPj4gYVtpXVtqXTsKICAgICAgICB9CiAgICAgICAgZihpLHIrMikKICAgICAgICB7CiAgICAgICAgICAgIGYoaixjKzIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gLWluZjsKICAgICAgICAgICAgICAgIG1pbmltdW1baV1bal0gPSBpbmY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmVwKGksMSxyKQogICAgICAgIHsKICAgICAgICAgICAgcmVwKGosMSxjKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihpID09IDEgJiYgaiA9PSAxKQogICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gYVtpXVtqXSxtaW5pbXVtW2ldW2pdID0gYVtpXVtqXTsKICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmKGRwW2ktMV1bal0gPiBkcFtpXVtqLTFdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gZHBbaS0xXVtqXSArIGFbaV1bal07CiAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW1baV1bal0gPSBtaW4oZHBbaV1bal0sbWluaW11bVtpLTFdW2pdKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gZHBbaV1bai0xXSArIGFbaV1bal07CiAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltdW1baV1bal0gPSBtaW4oZHBbaV1bal0sbWluaW11bVtpXVtqLTFdKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXNzZXJ0KG1pbmltdW1bcl1bY10gIT0gaW5mKTsKICAgICAgICBjb3V0PDwxIC0gbWluaW11bVtyXVtjXTw8ZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9