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.
x, y, m = [int(x) for x in input().split()]
x, y = min(x, y), max(x, y)
if y <= 0:
  print(-1)
  exit(0)
if y >= m:
  print(0)
  exit(0)

c = 0
if x < 0 and y > 0:
  if m <= 0:
    c = (m - x) // y
  else:
    c = -x // y
  x += c * y

while x < m and y < m:
  xx = x + y
  if xx <= min(x, y):
    print(-1)
    exit(0)
  x, y = xx, max(x, y)
  c += 1
print(c)
