
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)
