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.

def solve(x, y, m):
	res = 0
	while max(x, y) < m:
		x, y = x+y, y
		res += 1
		if max(x, y) >= m:
			return res	
		x, y = y, x+y
		res += 1
	return res

def main():
	x, y, m = map(int, input().split())
	if max(x, y) >= m:
		print(0)
		return 
	if x <= 0 and y <= 0:
		print(-1)
		return 
	if x <= 0:
		x, y = y, x
	cnt = 0
	while y < 0:
		y += x 
		cnt += 1
	cnt += min(solve(x, y, m), solve(y, x, m))
	print(cnt)
main()
			
	  	 	 	 		  		  				   	 		  	