Let us call a pair of integer numbers *m*-perfect, if at least one number in the pair is greater than or equal to *m*. Thus, the pairs (3, 3) and (0, 2) are 2-perfect while the pair (-1, 1) is not.

Two integers *x*, *y* are written on the blackboard. It is allowed to erase one of them and replace it with the sum of the numbers, (*x* + *y*).

What is the minimum number of such operations one has to perform in order to make the given pair of integers *m*-perfect?
Single line of the input contains three integers *x*, *y* and *m* ( - 10<sup class="upper-index">18</sup> ≤ *x*, *y*, *m* ≤ 10<sup class="upper-index">18</sup>).

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preffered to use the cin, cout streams or the %I64d specifier.
def solve(x,y,m):
    #edge case
    if x >= m or y >= m:
        print(0)
        return
    if x <= 0 and y <= 0:
        print(-1)
        return

    #general case
    if x > y:
        x,y = y,x
    cnt = 0

    if x <= 0:
        div = abs(x)//y + 1
        x = div*y + x
        cnt += div

    while y < m:
        x += y
        x,y = y,x
        cnt += 1

    print(cnt)

if __name__ == '__main__':
    x,y,m = map(int,input().split())

    solve(x,y,m)