def unsigned_div_newton(a, b):
assert a >= 0 and b > 0
if a <= b:
return int(a == b)
k = a.bit_length() + b.bit_length() # a*b < 2**k
x = 2 # 0 < x < 2**(k+1)/b # initial guess for convergence
lastx = None
while lastx != x:
lastx = x
x = (x * (2**(k + 1) - x * b)) >> k
if x*b < 2**k:
x += 1
return (a * x) >> k
import sys
print(unsigned_div_newton(*map(int, sys.stdin)))
ZGVmIHVuc2lnbmVkX2Rpdl9uZXd0b24oYSwgYik6CiAgICBhc3NlcnQgYSA+PSAwIGFuZCBiID4gMAogICAgaWYgYSA8PSBiOgogICAgICAgIHJldHVybiBpbnQoYSA9PSBiKQoKICAgIGsgPSBhLmJpdF9sZW5ndGgoKSArIGIuYml0X2xlbmd0aCgpICAjIGEqYiA8IDIqKmsKICAgIHggPSAyICAjICAwIDwgeCA8IDIqKihrKzEpL2IgICMgaW5pdGlhbCBndWVzcyBmb3IgY29udmVyZ2VuY2UKICAgIGxhc3R4ID0gTm9uZQogICAgd2hpbGUgbGFzdHggIT0geDoKICAgICAgICBsYXN0eCA9IHgKICAgICAgICB4ID0gKHggKiAoMioqKGsgKyAxKSAtIHggKiBiKSkgPj4gawogICAgaWYgeCpiIDwgMioqazogCiAgICAgICAgeCArPSAxCiAgICByZXR1cm4gKGEgKiB4KSA+PiBrCgppbXBvcnQgc3lzCnByaW50KHVuc2lnbmVkX2Rpdl9uZXd0b24oKm1hcChpbnQsIHN5cy5zdGRpbikpKQ==
MTA3MTUwODYwNzE4NjI2NzMyMDk0ODQyNTA0OTA2MDAwMTgxMDU2MTQwNDgxMTcwNTUzMzYwNzQ0Mzc1MDM4ODM3MDM1MTA1MTEyNDkzNjEyMjQ5MzE5ODM3ODgxNTY5NTg1ODEyNzU5NDY3MjkxNzU1MzE0NjgyNTE4NzE0NTI4NTY5MjMxNDA0MzU5ODQ1Nzc1NzQ2OTg1NzQ4MDM5MzQ1Njc3NzQ4MjQyMzA5ODU0MjEwNzQ2MDUwNjIzNzExNDE4Nzc5NTQxODIxNTMwNDY0NzQ5ODM1ODE5NDEyNjczOTg3Njc1NTkxNjU1NDM5NDYwNzcwNjI5MTQ1NzExOTY0Nzc2ODY1NDIxNjc2NjA0Mjk4MzE2NTI2MjQzODY4MzcyMDU2NjgwNjkzNzYKMg==
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376
2