#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int main() {
  long long x, y, m;
  cin >> x >> y >> m;
  if (x >= m || y >= m) {
    cout << 0 << endl;
  } else {
    if (x <= 0 && y <= 0) {
      cout << -1 << endl;
      return 0;
    }
    long long ans = 0;
    if (x + y < x) {
      if (abs(y) % abs(x) == 0) {
        ans += abs(y) / abs(x);
        y = 0;
      } else {
        ans += abs(y) / abs(x) + 1;
        y = ans * abs(x) + y;
      }
    } else if (x + y < y) {
      if (abs(x) % abs(y) == 0) {
        ans += abs(x) / abs(y);
        x = 0;
      } else {
        ans += abs(x) / abs(y) + 1;
        x = ans * abs(y) + x;
      }
    }
    if (x > y) swap(x, y);
    while (x < m && y < m) {
      long long temp = x + y;
      x = y;
      y = temp;
      ans++;
    }
    cout << ans << endl;
  }
}
