## Question

There is a robot on an `m x n`

grid. The robot is initially located at the **top-left corner** (i.e., `grid[0][0]`

). The robot tries to move to the **bottom-right corner** (i.e., `grid[m - 1][n - 1]`

). The robot can only move either down or right at any point in time.

Given the two integers `m`

and `n`

, return *the number of possible unique paths that the robot can take to reach the bottom-right corner*.

The test cases are generated so that the answer will be less than or equal to `2 * 10`

.^{9}

**Example 1:**

Input:m = 3, n = 7Output:28

**Example 2:**

Input:m = 3, n = 2Output:3Explanation:From the top-left corner, there are a total of 3 ways to reach the bottom-right corner: 1. Right -> Down -> Down 2. Down -> Down -> Right 3. Down -> Right -> Down

**Constraints:**

`1 <= m, n <= 100`

## Python Solution

class Solution: def uniquePaths(self, m: int, n: int) -> int: dp_grid = [[1 for i in range (n)] for j in range (m)] for i in range (1,m): for j in range (1,n): dp_grid[i][j] = dp_grid[i-1][j] + dp_grid[i][j-1] return dp_grid[-1][-1]