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.
k = 0
x, y, m = map(int, input().split())
if (y < x):
    x, y = y, x
if (y > m):
    print(0)
else:
    if (x <= 0) and (y <= 0):
        print(-1)
    else:
        if (x <= 0) and (y > 0):
            if (abs(x) % y > 0):
                k += abs(x) // y + 1
            else:
                k += abs(x) // y
            x = x + y * k
        a = 0
        b = 1
        c = 0
        while (c < 5000000000000000000):
            if (a * x + b * y >= m):
                print(k)
                break
            c = a + b
            a = b
            b = c
            k += 1
        if (c >= 5000000000000000000):
            print(-1)