/*
(x) (x)
\____/
*/
//powmod , sieve , isprime , oset
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <map>
#include <numeric>
#include <queue>
using namespace std;
#define ll long long
int h,w; //\n
int arr[110][110] , dp[110][110] ;
int max_phath(int i,int j){
if(i==h){
return 0;
}
if(dp[i][j]!=-1)return dp[i][j];
int res = 0;
for(int l=-1;l<=1;l++){
if(j+l>=0 && j+l<w)res = max(res,max_phath(i+1,j+l)+arr[i][j]);
}
dp[i][j] = res;
return res;
}
void solve(){
cin>>h>>w;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
cin>>arr[i][j];
}
}
memset(dp,-1,sizeof(dp));
int ans = 0;
for(int j=0;j<w;j++){
ans = max(ans,max_phath(0,j));
}
cout<<ans <<'\n';
return;
}
int main(){
// ios :: sync_with_stdio(0); cin.tie(0);
int t; cin >> t;
for(int k = 0;k<t;k++){
solve();
}
return 0;
cout<<"88888";
}
LyoKKHgpICh4KQpcX19fXy8KKi8KLy9wb3dtb2QgLCBzaWV2ZSAsIGlzcHJpbWUgLCBvc2V0CiNkZWZpbmUgX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHF1ZXVlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIGxsIGxvbmcgbG9uZwppbnQgaCx3OyAvL1xuCmludCBhcnJbMTEwXVsxMTBdICwgZHBbMTEwXVsxMTBdIDsKCmludCBtYXhfcGhhdGgoaW50IGksaW50IGopewogICAgaWYoaT09aCl7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CgogICAgaWYoZHBbaV1bal0hPS0xKXJldHVybiBkcFtpXVtqXTsKCiAgICBpbnQgcmVzID0gMDsKICAgIGZvcihpbnQgbD0tMTtsPD0xO2wrKyl7CiAgICAgICAgaWYoaitsPj0wICYmIGorbDx3KXJlcyA9IG1heChyZXMsbWF4X3BoYXRoKGkrMSxqK2wpK2FycltpXVtqXSk7CiAgICB9CiAgICBkcFtpXVtqXSA9IHJlczsKICAgIHJldHVybiByZXM7Cn0KCnZvaWQgc29sdmUoKXsKICAgIGNpbj4+aD4+dzsKICAgIGZvcihpbnQgaT0wO2k8aDtpKyspewogICAgICAgIGZvcihpbnQgaj0wO2o8dztqKyspewogICAgICAgICAgICBjaW4+PmFycltpXVtqXTsKICAgICAgICB9CiAgICB9CiAgICBtZW1zZXQoZHAsLTEsc2l6ZW9mKGRwKSk7CiAgICBpbnQgYW5zID0gMDsKICAgIGZvcihpbnQgaj0wO2o8dztqKyspewogICAgICAgIGFucyA9IG1heChhbnMsbWF4X3BoYXRoKDAsaikpOwogICAgICAgIAogICAgfQogICAgY291dDw8YW5zIDw8J1xuJzsKICAgIHJldHVybjsKICAgIAp9CgppbnQgbWFpbigpewogICAgLy8gaW9zIDo6IHN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKICAgIGludCB0OyBjaW4gPj4gdDsKICAgIGZvcihpbnQgayA9IDA7azx0O2srKyl7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwogICAgY291dDw8Ijg4ODg4IjsKfQ==