

import java.util.Scanner;//题目在上图
public class Main {
static int t,n,m;
static int [][] a;
static int []row;
static int []col;
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
t=in.nextInt();
while(t!=0) {
n=in.nextInt();
m=in.nextInt();
a=new int [n][m];
row=new int [n];
col=new int [m];
for(int i=0;i<n;i++) {
for(int j=0;j<m;j++) {//这里j<n,就runtime error了
a[i][j]=in.nextInt();
row[i]+=a[i][j];
col[j]+=a[i][j];
}
}
int maxrow=0,maxcol=0,r=0,c=0;
for(int i=1;i<n-1;i++) {//找出最大行的数值,和对应行下标
if(maxrow<row[i]) {
maxrow=row[i];
r=i;
}
}
for(int i=1;i<m-1;i++) {//找出最大列的数值,和对应列下标
if(maxcol<col[i]) {
maxcol=col[i];
c=i;
}
}
System.out.println(maxrow+maxcol-a[r][c]);//最大行+最大列-共同拥有的那个数
t--;
}
}
}