<garvit244>63_1.py
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]
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 ]
