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.
nums = input().split(' ')
x = int(nums[0])
y = int(nums[1])
m = int(nums[2])

def ispr(x, y, m):
	if x <= 0 and y <= 0 and (m > x or m > y):
		return -1
	
	def ispr_recur(x, y, m, n):
		if (x >= m or y >= m):
			return n
		else:
			n += 1
			return 1 + min(ispr_recur(x + y, y, m, n), ispr_recur(x, x + y, m, n))
	
	return ispr_recur(x, y, m, 0)

print(ispr(x, y, m))