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.
a = str(input()).split()
b, c, m = int(a[0]), int(a[1]), int(a[2])
cnt = 0


if m == 0:
    if b < 0 and c < 0:
        cnt = -1
elif m < 0:
    if b < m and c < m:
        cnt = -1
else:
    if b <= 0 and c <= 0:
        cnt = -1


if cnt == -1:
    print(cnt)
else:
    if m <= 0:
        print(cnt)
    else:
        if b < 0:
            b += ((0 - b) // c) * c
            cnt += (0 - b) // c
        elif c < 0:
            c += ((0 - c) // b) * b
            cnt += (0 - c) // b
        while True:
            if b >= m or c >= m:
                break
            if b >= c:
                c += b
            else:
                b += c
            cnt += 1
        print(cnt)
