def inverse( L) :
fac = 1
i = 1
n = len ( L)
for x in range ( n) :
L[ n-x-1 ] *= fac
fac *= i
i += 1
E = [ L[ 0 ] *L[ 0 ] ] + [ 0 ] *( n-1 )
I = [ ]
for x in range ( n) :
I.append ( E[ x] //L[ 0 ] )
for y in range ( x, n) :
E[ y] -= I[ x] *L[ y-x]
for y in range ( 0 , n-x) :
L[ y] //= n-x-y
for x in range ( n) :
I[ x] //= fac
i -= 1
fac //= i
return I
print ( inverse( [ 1 , 0 , -1 , 0 , 1 , 0 , -1 , 0 ] ) )
print ( inverse( [ 1 , 2 , 4 , 8 , 16 , 32 , 64 ] ) )
print ( inverse( [ 1 , -1 , 0 , 0 , 0 , 0 , 0 , 0 ] ) )
ZGVmIGludmVyc2UoTCk6CglmYWMgPSAxCglpID0gMQoJbiA9IGxlbihMKQoJCglmb3IgeCBpbiByYW5nZShuKToKCQlMW24teC0xXSAqPSBmYWMKCQlmYWMgKj0gaQoJCWkgKz0gMQoJCglFID0gW0xbMF0qTFswXV0gKyBbMF0qKG4tMSkKCUkgPSBbXQoJCglmb3IgeCBpbiByYW5nZShuKToKCQlJLmFwcGVuZChFW3hdLy9MWzBdKQoJCWZvciB5IGluIHJhbmdlKHgsbik6CgkJCUVbeV0gLT0gSVt4XSpMW3kteF0KCQkKCQlmb3IgeSBpbiByYW5nZSgwLG4teCk6CgkJCUxbeV0gLy89IG4teC15CgkKCWZvciB4IGluIHJhbmdlKG4pOgoJCUlbeF0gLy89IGZhYwoJCWkgLT0gMQoJCWZhYyAvLz0gaQoJCglyZXR1cm4gSQoKcHJpbnQoaW52ZXJzZShbMSwwLC0xLDAsMSwwLC0xLDBdKSkKcHJpbnQoaW52ZXJzZShbMSwyLDQsOCwxNiwzMiw2NF0pKQpwcmludChpbnZlcnNlKFsxLC0xLDAsMCwwLDAsMCwwXSkp