#include <bits/stdc++.h>
using namespace std;
long long m;
inline long long calc(long long xi, long long yi) {
  long long x, y, ans;
  x = min(xi, yi);
  y = max(xi, yi);
  ans = 0ll;
  if (y >= m) return ans;
  ans = calc(y, x + y) + 1;
  return ans;
}
int main() {
  long long x, y, xi, yi, k;
  long long ops;
  ops = 0;
  cin >> x >> y >> m;
  if (x >= m || y >= m)
    cout << ops << endl;
  else {
    if (x <= 0 && y <= 0)
      printf("-1\n");
    else {
      if (x >= 0 && y >= 0) {
        ops = calc(x, y);
      } else {
        xi = min(x, y);
        yi = max(x, y);
        k = (yi - xi) / yi - 1;
        xi = xi + k * yi;
        while (1) {
          if (xi >= 0) break;
          xi += yi;
          k++;
        }
        ops = k + calc(xi, yi);
      }
      cout << ops << endl;
    }
  }
  return 0;
}
