from re import X

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param matrix int整型二维数组 the matrix
# @return int整型
#
class Solution:
    def minPathSum(self , matrix: List[List[int]]) -> int:
        # write code here
        i = len(matrix)-1
        j = len(matrix[0])-1
        bm = [[0 for j in range(j+1)] for i in range(i+1)]

        bm[0][0] = matrix[0][0]
        for r in range(1, i+1):
            bm[r][0] = bm[r-1][0] + matrix[r][0]

        for c in range(1, j+1):
            bm[0][c] = bm[0][c-1] + + matrix[0][c]

        for r in range(1, i+1):
            for c in range(1, j+1):
                bm[r][c] = min(bm[r-1][c], bm[r][c-1]) + matrix[r][c]
        
        return bm[i][j]