#include <bits/stdc++.h>
using namespace std;
int const maxn = (int)1e5 + 111;
int const inf = (1 << 30) - 1;
long long x, y, m;
int main() {
  cin >> x >> y >> m;
  if (x > y) swap(x, y);
  if (y >= m) {
    cout << 0 << endl;
    return 0;
  }
  if (x <= 0 && y <= 0 && y < m) {
    cout << -1 << endl;
    return 0;
  }
  long long ans = 0;
  if (x < 0) {
    long long t = (-x) / y;
    if (x + t * y < 0) {
      t++;
    }
    ans = t;
    x = x + t * y;
  }
  if (x > y) swap(x, y);
  while (true) {
    if (y >= m) break;
    long long temp = y;
    y = x + y;
    x = temp;
    ans++;
  }
  cout << ans << endl;
  return 0;
}
