#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)1e+9 + 7ll;
const long long linf = (long long)1e+18 + 7ll;
const long double eps = (long double)1e-9;
const long double pi = acosl((long double)-1.0);
const int alph = 26;
static char buff[(int)2e6 + 17];
const int maxn = (int)1e5 + 17;
long long x, y, m;
int main() {
  scanf("%lld %lld %lld", &x, &y, &m);
  if (x > y) swap(x, y);
  long long d = 0;
  for (int i = 0; i < 1488; ++i) {
    if (y >= m) return printf("%lld\n", d), 0;
    if (y <= 0) return printf("-1\n"), 0;
    d += (y - x) / y + 1;
    x += y * ((y - x) / y + 1);
    if (x > y) swap(x, y);
  }
  printf("-1\n");
  return 0;
}
