input: Write a python function to find the number of unique paths in an m x n grid.
  assert num_unique_paths(3, 3) == 6
  assert num_unique_paths(7, 3) == 28
  assert num_unique_paths(3, 2) == 3
output: def num_unique_paths(m, n):
      if m == 0 or n == 0:
          return 0
      dp = [[1]*n for _ in range(m)]
      for i in range(1, m):
          for j in range(1, n):
              dp[i][j] = dp[i-1][j] + dp[i][j-1]
      return dp[-1][-1]