← Home
package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	buf := make([]byte, 1024*1024)
	scanner.Buffer(buf, 1024*1024)

	scanInt := func() int {
		scanner.Scan()
		b := scanner.Bytes()
		res := 0
		sign := 1
		for _, c := range b {
			if c == '-' {
				sign = -1
			} else {
				res = res*10 + int(c-'0')
			}
		}
		return res * sign
	}

	if !scanner.Scan() {
		return
	}
	b := scanner.Bytes()
	n := 0
	for _, c := range b {
		n = n*10 + int(c-'0')
	}
	m := scanInt()

	A := make([][]int64, n)
	pref := make([][]int64, n+1)
	for i := 0; i <= n; i++ {
		pref[i] = make([]int64, m+1)
	}

	for i := 0; i < n; i++ {
		A[i] = make([]int64, m)
		for j := 0; j < m; j++ {
			A[i][j] = int64(scanInt())
			pref[i+1][j+1] = pref[i][j+1] + pref[i+1][j] - pref[i][j] + A[i][j]
		}
	}

	getSum := func(r1, c1, r2, c2 int) int64 {
		return pref[r2+1][c2+1] - pref[r1][c2+1] - pref[r2+1][c1] + pref[r1][c1]
	}

	ans := int64(-1e18)

	for cr := 0; cr < n; cr++ {
		for cc := 0; cc < m; cc++ {
			sum := A[cr][cc]
			rad := 2
			k := 5
			for cr-rad >= 0 && cr+rad < n && cc-rad >= 0 && cc+rad < m {
				r := cr - rad
				c := cc - rad

				border := getSum(r, c, r+k-1, c+k-1) - getSum(r+1, c+1, r+k-2, c+k-2)
				sum += border - A[r+1][c] + A[r+2][c+1]

				if sum > ans {
					ans = sum
				}

				rad += 2
				k += 4
			}
		}
	}

	for cr := 0; cr < n; cr++ {
		for cc := 0; cc < m; cc++ {
			rad := 1
			k := 3
			if cr-rad >= 0 && cr+rad < n && cc-rad >= 0 && cc+rad < m {
				r := cr - rad
				c := cc - rad

				border := getSum(r, c, r+k-1, c+k-1) - getSum(r+1, c+1, r+k-2, c+k-2)
				sum := border - A[r+1][c]

				if sum > ans {
					ans = sum
				}

				rad += 2
				k += 4

				for cr-rad >= 0 && cr+rad < n && cc-rad >= 0 && cc+rad < m {
					r := cr - rad
					c := cc - rad

					border := getSum(r, c, r+k-1, c+k-1) - getSum(r+1, c+1, r+k-2, c+k-2)
					sum += border - A[r+1][c] + A[r+2][c+1]

					if sum > ans {
						ans = sum
					}

					rad += 2
					k += 4
				}
			}
		}
	}

	fmt.Println(ans)
}