← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)

	for tc := 0; tc < t; tc++ {
		var n, m int
		fmt.Fscan(in, &n, &m)

		grid := make([][]int, n)
		mainDiag := make([]int, n+m+1)
		antiDiag := make([]int, n+m+1)

		for i := 0; i < n; i++ {
			grid[i] = make([]int, m)
			for j := 0; j < m; j++ {
				fmt.Fscan(in, &grid[i][j])
				val := grid[i][j]
				mainDiag[i-j+m] += val
				antiDiag[i+j] += val
			}
		}

		maxSum := -1
		for i := 0; i < n; i++ {
			for j := 0; j < m; j++ {
				sum := mainDiag[i-j+m] + antiDiag[i+j] - grid[i][j]
				if sum > maxSum {
					maxSum = sum
				}
			}
		}
		fmt.Fprintln(out, maxSum)
	}
}