package main import . "fmt" import . "os" import bf "bufio" import . "slices" func main() { rd := bf.NewReader(Stdin) var n, m int Fscan(rd, &n, &m) if n == 1 { Println(0) return } a := make([][]int, n) for i := range a { a[i] = make([]int, m) for j := range a[i] { Fscan(rd, &a[i][j]) } } dp := make([]int, m) for i := range dp { dp[i] = a[0][i] + a[1][i] } for i := 1; i < n-1; i++ { tmp := make([]int, m) e := Min(dp) for j, v := range dp { tmp[j] = min(e + a[i][j], v) + a[i+1][j] } dp = tmp } Println(Min(dp)) }