#include<bits/stdc++.h>
using namespace std;
int T,n,m,k,a[105][1005][2],dp[105],cha[105],ans;
bool flag[105];
//dp[i] 前 i 个人的最大总好感度且有一种食物占一半以上
int solve(int k){
int now=0;
for(int i=1;i<=n;i++){
if(a[i][k][0]>=a[i][k][1]){
dp[i]=dp[i-1]+a[i][k][0];
now++;
cha[i]=a[i][k][0]-a[i][k][1];
flag[i]=0;
}
else if(now>n/2){
dp[i]=dp[i-1]+a[i][k][1];
cha[i]=a[i][k][1]-a[i][k][0];
flag[i]=1;
}
else{
cha[i]=a[i][k][1]-a[i][k][0];
int MIN=2e9,MINN;
for(int j=1;j<n;j++){
if(flag[j]==1){
MIN=min(MIN,cha[j]);
MINN=j;
}
}
if(cha[i]>MIN){
flag[MINN]=0;
cha[MINN]=-cha[MINN];
flag[i]=1;
dp[i]=dp[i-1]+2*cha[MINN]+cha[i];
}
else{
flag[i]=0;
cha[i]=-cha[i];
dp[i]=dp[i-1]+cha[i];
}
}
}
return dp[n];
}
int main(){
freopen("food.in","r",stdin);
freopen("food.out","w",stdout);
cin>>T;
while(T--){
ans=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
int MAX=-1,sMAX=-1;
for(int j=1;j<=m;j++){
scanf("%d",&a[i][j][0]);
if(a[i][j][0]>=sMAX){
if(a[i][j][0]>=MAX){
sMAX=MAX;
MAX=a[i][j][0];
}
else{
sMAX=a[i][j][0];
}
}
MAX=max(MAX,a[i][j][0]);
}
for(int j=1;j<=m;j++){
if(a[i][j][0]==MAX)a[i][j][1]=sMAX;
else a[i][j][1]=MAX;
}
}
for(int i=1;i<=m;i++){
ans=max(ans,solve(i));
}
cout<<ans<<endl;
}
return 0;
}