class Solution:
    def minPathSum(self, grid: List[List[int]]) -> int:
        col = len(grid[0])
        row = len(grid)
        dp = [[0 for _ in range(col)] for _ in range(row)]
        dp[0][0] = grid[0][0]
        for i in range(row):
            for j in range(col):
                if j == 0 and i == 0:
                    continue 
                dp[i][j] = min(dp[i][j-1] if j-1 >=0 else float('inf') ,dp[i-1][j] if i-1 >=0 else float('inf')) + grid[i][j]  
        return dp[-1][-1]