import sys
from math import floor


def log2(x):
    """returns ceil(log2(x)))"""
    y = 0
    while (1 << y) < x:
        y = y + 1
    return y


for q in range(1, 17 + 1):
    d = 5 ** q
    b = 127 + log2(d)
    t = 2 ** b
    c = t // d + 1
    assert c < 2 ** 128
    assert c >= 2 ** 127
    K = 2 ** 127
    if not (c * K * d <= (K + 1) * t):
        print(q)
        top = floor(t / (c * d - t))
        sys.exit(-1)

for q in range(18, 344 + 1):
    d = 5 ** q
    b = 64 + 2 * log2(d)
    t = 2 ** b
    c = t // d + 1
    assert c > 2 ** (64 + log2(d))
    K = 2 ** 64
    if not (c * K * d <= (K + 1) * t):
        print(q)
        top = floor(t / (c * d - t))
        sys.exit(-1)

print("all good")
