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.
from sys import stdin,stdout
nmbr = lambda: int(stdin.readline())
lst = lambda: list(map(int,stdin.readline().split()))
for _ in range(1):#nmbr()):
    a,b,m=lst()
    op=0
    if a==0 or b==0:
        if a+b==m:print(0)
        elif m!=0:print(-1)
        else:print(0)
        continue
    if a<0 and b<0 and a+b<m:
        print(-1)
        continue
    while max(a,b)<m:
        # print(a,b)
        a1=max(a,b)+min(a,b)
        b1=max(a,b)
        a,b=a1,b1
        op+=1
    print(op)
