#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
long long x, y, m;
long long f[N];
long long oper(long long x, long long y) {
  long long op = -1;
  f[0] = x;
  f[1] = y;
  long long ans = 0;
  for (int i = 2; i < 10000; ++i) {
    if (f[i - 1] < f[i - 2]) swap(f[i - 1], f[i - 2]);
    if (f[i - 1] >= m) {
      op = ans;
      break;
    }
    if (f[i - 1] <= 0) return op;
    long long k = (f[i - 1] - f[i - 2]) / f[i - 1];
    f[i - 2] += k * f[i - 1];
    ans += k;
    f[i] = f[i - 1] + f[i - 2];
    ans++;
    if (abs(f[i]) > 2000000000000000000LL) break;
  }
  return op;
}
int main() {
  cin >> x >> y >> m;
  cout << oper(x, y) << endl;
  return 0;
}
