回溯法,确定一个点(i,j)后,从(i,j+1:)以及(i:,:)确认下一个点

T=int(input())
for i in range(T):  
    N,M=tuple(map(int,input().split()))
    matrix=[]
    for j in range(N):
        matrix.append(list(map(int,input().split())))
    ans=0
    def possible(y,x,posSet):
        for i,j in [(y-1,x-1),(y-1,x),(y-1,x+1),(y,x-1)]:
            if i<0 or j<0:
                continue
            if (i,j) in posSet:
                return False
        return True

                


    def backtracking(row,col,total,posSet):
        global ans
        ans=max(ans,total)

        for i in range(row,N):
            for j in range(M):
                if i==row and j<col:
                    continue
                else:
                    if possible(i,j,posSet):
                        posSet.add((i,j))
                        backtracking(i,j+1,total+matrix[i][j],posSet)
                        posSet.remove((i,j))

    backtracking(0,0,0,set())
    print(ans)