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.
z=[int(p) for p in input().split()]
m=z[2]
lst=[]
lst.append(z[0])
lst.append(z[1])
tempi=min(lst)
tempa=max(lst)

count=0
fibo=[]


n=1000000000000000000
def fib(n):
        
        a, b = 0, 1
        while b < n:
                fibo.append(b)
                a, b = b, a+b
    


def add(m):
        n=10**18
        tempi=min(lst)
        tempa=max(lst)
        count=0
        if(tempi>0 and tempa>0 and m>tempa):
                fib(n)
                for p in range(1,len(fibo)+1):
                        if(((fibo[p]*tempa)+ (fibo[p-1]*tempi))>=m):
                                count+=p
                                return count
        elif(tempi==0 or tempa==0):
                count=1
                fib(n)
                for p in range(1,len(fibo)):
                        if(((fibo[p]*tempa)+ (fibo[p-1]*tempi))>=m):
                                count+=p
                                return count

        elif(tempi<0 and tempa>0):
                val=(-(tempi)//tempa)+1
                count=val
                tempi=tempa+(val*tempi)
                fib(n)
                for p in range(1,len(fibo)):
                        if(((fibo[p]*tempa)+ (fibo[p-1]*tempi))>=m):
                                count+=p
                                return count

        





if(tempi>0 and tempa>0 and m>tempa):
        cou=add(m)
        print(cou)

elif(tempi>0 and tempa>0 and m<=tempa):
        print(0)

elif(tempi==0 or tempa==0):
        if(tempi==0 and tempa==0 and m>0):
                print(-1)
        elif(tempi==0 and tempa==0 and m<=0):
                print(0)
        elif(tempa==0 and tempi<0 and m>0):
                print(-1)
                
        else:
                cou=add(m)
                print(cou)
elif(tempi<0 and tempa>0):
        if(m<=tempa):
                print(0)
        else:
                cou=add(m)
                print(cou)
elif(tempi<0 and tempa==0):
        if(m>0):
                print(-1)
        else:
                print(0)
elif(tempi<0 and tempa<0):
        if(m>=0):
                print(-1)
        elif(m<0 and m<=tempa):
                print(0)
        elif(m<0 and m>tempa):
                print(-1)

        


        
                
                
                        
                        
                                
                        
                


                        
                        
                        
