def GCD(a, b):
prevx, x = 1,0
prevy, y = 0, 1
while b:
q = a/b
x, prevx = prevx - q*x, x
y, prevy = prevy - q*y, y
a, b = b, a%b
return a, prevx, prevy
def modinv(x, m):
(gcd, c, d)= GCD(x,m)
if c<0:
c += m
return c
s1=0x44e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e
s2=0x9a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab
q=2**256 - 432420386565659656852420866394968145599
print "s1-s2 = %064x" % (s1-s2)
print "1/(s1-s2)= %064x" % modinv(s1-s2, q)
CmRlZiBHQ0QoYSwgYik6CiAgICBwcmV2eCwgeCA9IDEsMAogICAgcHJldnksIHkgPSAwLCAxCiAgICB3aGlsZSBiOgogICAgICAgIHEgPSBhL2IKICAgICAgICB4LCBwcmV2eCA9IHByZXZ4IC0gcSp4LCB4CiAgICAgICAgeSwgcHJldnkgPSBwcmV2eSAtIHEqeSwgeQogICAgICAgIGEsIGIgPSBiLCBhJWIKICAgIHJldHVybiBhLCBwcmV2eCwgcHJldnkKCmRlZiBtb2RpbnYoeCwgbSk6CiAgICAoZ2NkLCBjLCBkKT0gR0NEKHgsbSkKICAgIGlmIGM8MDoKICAgICAgICBjICs9IG0KICAgIHJldHVybiBjCgpzMT0weDQ0ZTFmZjJkZmQ4MTAyY2Y3YTQ3YzIxZDVjOWZkNTcwMTYxMGQwNDk1M2M2ODM2NTk2YjRmZTlkZDJmNTNlM2UKczI9MHg5YTVmMWM3NWU0NjFkN2NlYjFjZjNjYWI5MDEzZWIyZGM4NWI2ZDBkYThjM2M2ZTI3ZTNhNWE1YjNmYWE1YmFiCnE9MioqMjU2IC0gNDMyNDIwMzg2NTY1NjU5NjU2ODUyNDIwODY2Mzk0OTY4MTQ1NTk5CnByaW50ICJzMS1zMiA9ICUwNjR4IiAlIChzMS1zMikKCnByaW50ICIxLyhzMS1zMik9ICUwNjR4IiAlIG1vZGludihzMS1zMiwgcSkK