comefrom: <garvit244>63_1.py
code: def uniquePathsWithObstacles( obstacleGrid):
      m, n = len(obstacleGrid), len(obstacleGrid[0])
      dp = [[0 for _ in range(n)] for _ in range(m)]
      
      if obstacleGrid[0][0] == 1 or obstacleGrid[m-1][n-1] == 1:
          return 0
      
      dp[0][0] = 1
      for index in range(1, m):
          if obstacleGrid[index][0] == 1:
              dp[index][0] = 0
          else:
              dp[index][0] = dp[index-1][0]
      
      for index in range(1, n):
          if obstacleGrid[0][index] == 1:
              dp[0][index] = 0
          else:
              dp[0][index] = dp[0][index-1]
      
      for index_i in range(1, m):
          for index_j in range(1, n):
              if obstacleGrid[index_i][index_j] == 1:
                  dp[index_i][index_j] = 0
              else:
                  dp[index_i][index_j] = dp[index_i-1][index_j] + dp[index_i][index_j-1]
      
      return dp[m-1][n-1]
masked: def sample_funcname ( var_0 ) :
      var_2 , var_4 = len ( var_0 ) , len ( var_0 [ 0 ] )
      var_7 = [ [ 0 for var_5 in range ( var_4 ) ] for var_5 in range ( var_2 ) ]
      if var_0 [ 0 ] [ 0 ] == 1 or var_0 [ var_2 - 1 ] [ var_4 - 1 ] == 1 :
          return 0
      var_7 [ 0 ] [ 0 ] = 1
      for var_9 in range ( 1 , var_2 ) :
          if var_0 [ var_9 ] [ 0 ] == 1 :
              var_7 [ var_9 ] [ 0 ] = 0
          else :
              var_7 [ var_9 ] [ 0 ] = var_7 [ var_9 - 1 ] [ 0 ]
      for var_9 in range ( 1 , var_4 ) :
          if var_0 [ 0 ] [ var_9 ] == 1 :
              var_7 [ 0 ] [ var_9 ] = 0
          else :
              var_7 [ 0 ] [ var_9 ] = var_7 [ 0 ] [ var_9 - 1 ]
      for var_10 in range ( 1 , var_2 ) :
          for var_11 in range ( 1 , var_4 ) :
              if var_0 [ var_10 ] [ var_11 ] == 1 :
                  var_7 [ var_10 ] [ var_11 ] = 0
              else :
                  var_7 [ var_10 ] [ var_11 ] = var_7 [ var_10 - 1 ] [ var_11 ] + var_7 [ var_10 ] [ var_11 - 1 ]
      return var_7 [ var_2 - 1 ] [ var_4 - 1 ]
  