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.
inp=raw_input().split()
x=long(inp[0])
y=long(inp[1])
m=long(inp[2])
if (x>=m) or (y>=m):
	print 0
	exit()
if (x<=0) and (y<=0):
	print -1
	exit()
ans=0
if (x<=0):
	temp=x
	x=y
	y=temp
if (y<=0):
	ans=(-y)/x
	y+=ans*x
	while(y<=0):
		y+=x
		ans+=1
while (x<m) and (y<m):
	if x<y:
		temp=x
		x=y
		y=temp
	y=x+y
	ans+=1
print ans
