#include <bits/stdc++.h>
int main() {
  int64_t x, y, m, ans = 0, factor, x_prime;
  scanf("%I64d", &x);
  scanf("%I64d", &y);
  scanf("%I64d", &m);
  if (x <= 0 && y <= 0 && m <= 0) {
    if (x >= m || y >= m) {
      printf("0\n");
    } else
      printf("-1\n");
  } else if (x <= 0 && y <= 0 && m > 0) {
    printf("-1\n");
  } else if (x >= 0 && y >= 0 && m < 0) {
    printf("0\n");
  } else if (x >= 0 && y <= 0 && m <= 0) {
    printf("0\n");
  } else if (x <= 0 && y >= 0 && m <= 0) {
    printf("0\n");
  } else if (x >= 0 && y > 0 && m >= 0) {
    if (x >= m || y >= m) {
      printf("0");
    } else {
      while (x < m && y < m) {
        if (x <= y) {
          x = x + y;
          ans++;
        } else {
          y = x + y;
          ans++;
        }
      }
      printf("%I64d\n", ans);
    }
  } else if (x < 0 && y > 0 && m >= 0) {
    if (x >= m || y >= m) {
      printf("%I64d", ans);
    } else {
      x_prime = -x;
      factor = x_prime / y;
      x += factor * y;
      ans += factor;
      while (x < m && y < m) {
        if (x <= y) {
          x = x + y;
          ans++;
        } else {
          y = x + y;
          ans++;
        }
      }
      printf("%I64d\n", ans);
    }
  } else if (x > 0 && y < 0 && m >= 0) {
    if (x >= m || y >= m) {
      printf("%I64d", ans);
    } else {
      x_prime = -y;
      factor = x_prime / x;
      y += factor * x;
      ans += factor;
      while (x < m && y < m) {
        if (x <= y) {
          x = x + y;
          ans++;
        } else {
          y = x + y;
          ans++;
        }
      }
      printf("%I64d\n", ans);
    }
  }
  return 0;
}
