#include <bits/stdc++.h>
using namespace std;
long long f[105];
int main() {
  long long x, y, m, res, i;
  while (scanf("%I64d%I64d%I64d", &x, &y, &m) != EOF) {
    res = 0;
    if (x >= m || y >= m) {
      printf("0\n");
      continue;
    }
    long long t = x + y;
    if (!(t > x || t > y)) {
      printf("-1\n");
      continue;
    }
    if (x > y) swap(x, y);
    if (x < 0) {
      res += (-x) / y + 1;
      x = x + res * y;
    }
    if (x > y) swap(x, y);
    f[0] = x, f[1] = y;
    for (i = 2;; i++) {
      f[i] = f[i - 1] + f[i - 2];
      if (f[i] >= m) break;
    }
    printf("%I64d\n", res + i - 1);
  }
  return 0;
}
