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 collections import *
import sys
import io, os
import math
from heapq import *
gcd = math.gcd
sqrt = math.sqrt
from collections import deque

def ceil(a, b):
    a = -a
    k = a // b
    k = -k
    return k
# arr=list(map(int, input().split()))
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline
def strinp(testcases):
    k = 5
    if (testcases == -1 or testcases == 1):
        k = 1
    f = str(input())
    f = f[2:len(f) - k]
    return f


def main():
    arr=list(map(int, input().split()))
    x=arr[0]
    y=arr[1]
    m=arr[2]
    if(x>=m or y>=m):
        print(0)
        exit()
    if(x<=0 and y<=0):
        print(-1)
        exit()
    a=max(x,y)
    b=min(x,y)
    ans=ceil(a-b,a)
    b=b+(ans*a)
    ta=a
    a=b
    b=ta
    while(b<m and a<m):
        ta=max(a,b)
        tb=min(a,b)
        tb+=ta
        a=tb
        b=ta
        ans+=1
    print(ans)
main()