#! py
def solve(matrix, mul):
width = len(matrix)
if width == 1:
return mul * matrix[0][0]
else:
sign = -1
total = 0
for i in range(width):
m = []
for j in range(1, width):
buff = []
for k in range(width):
if k != i:
buff.append(matrix[j][k])
m.append(buff)
sign *= -1
total += mul * solve(m, sign * matrix[0][i])
return total
matrix = [[1,-2,3],[0,-3,-4],[0,0,-3]]
print(solve(matrix, 1))