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]