Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
 
Please complete the following python code precisely:
```python
class Solution:
    def minPathSum(self, grid: List[List[int]]) -> int:
```