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.
import sys
input = lambda: sys.stdin.readline().rstrip()
from collections import deque

x,y,m = map(int, input().split())

if max(x,y)>=m:
    exit(print(0))
if (x+y)<=0:
    exit(print(-1))

a1,b1=deque([0,1]),deque([1,1])
cx,cy=1,1
ans = 1
while x*a1[-1]+y*b1[-1]<m:
    a1.append(a1[0]+a1[1])
    a1.popleft()
    b1.append(b1[0]+b1[1])
    b1.popleft()
    
    ans+=1
    
print(ans)
