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 numpy as np
a, b, m = list(map(int, input().split()))
n = 0
if a <= 0 and b <= 0 and m > max(a, b):
    print(-1)a
else:
    if min(a, b) < 0 and max(a, b) > 0:
        n += np.abs(min(a, b)) // max(a, b)
        if a < b:
            a += n * b
        else:
            b += n * a
    while max(a, b) < m:
        if a < b:
            a += b
        else:
            b += a
        n += 1
    print(n)

		 	  	 		 					 	 			 					  	