#include <bits/stdc++.h>
using namespace std;
template <class T>
T sqr(const T &x) {
  return x * x;
}
template <class T>
T min(const T &a, const T &b, const T &c) {
  return min(min(a, b), c);
}
template <class T>
T max(const T &a, const T &b, const T &c) {
  return max(max(a, b), c);
}
int main() {
  signed long long int x, y, m;
  cin >> x >> y >> m;
  if (x > y) swap(x, y);
  signed long long int a = 0;
  if (x <= 0 && y <= 0) {
    if (y >= m) {
      cout << "0\n";
    } else {
      cout << "-1\n";
    }
    return 0;
  }
  if (y < m && x < 0 && y > 0) {
    a = (-x + y - 1) / y;
    x += y * a;
  }
  while (max(x, y) < m) {
    if (x > y) swap(x, y);
    signed long long int px = x, py = y;
    x += y;
    if (x == px && y == py) {
      cout << "-1\n";
      return 0;
    }
    ++a;
  }
  cout << a << endl;
  return 0;
}
