#include <bits/stdc++.h>
using namespace std;
long long int x, y, m;
long long int myhandle_negative() {
  long long int ans, temp;
  if (x < 0) {
    temp = -x;
    ans = temp / y;
    if ((temp % y) != 0) ans++;
    x = (ans * y) + x;
  } else {
    temp = -y;
    ans = temp / x;
    if ((temp % y) != 0) ans++;
    y = (ans * x) + y;
  }
  return ans;
}
long long int myhandle_positive() {
  long long int ans = 0, mysum;
  while (1) {
    if (x >= m || y >= m) {
      break;
    }
    mysum = x + y;
    if (x < y) {
      x = y;
      y = mysum;
    } else {
      y = x;
      x = mysum;
    }
    ans++;
  }
  return ans;
}
int main() {
  scanf("%lld%lld%lld", &x, &y, &m);
  long long int ans = 0;
  if (!(x >= m || y >= m)) {
    if (x <= 0 && y <= 0) {
      ans = -1;
    } else {
      if (x < 0 || y < 0) {
        ans = myhandle_negative();
      }
      ans += myhandle_positive();
    }
  }
  cout << ans << endl;
  return 0;
}
