#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
const int INF = 2e9;
const int MOD = 1e9 + 7;
long long dp[MAXN][2];
int main() {
  long long A = 0, B = 0, edge = 0, cnt = 0;
  scanf("%I64d%I64d%I64d", &A, &B, &edge);
  if (edge <= A || edge <= B) return printf("0"), 0;
  if (A <= 0 && B <= 0 && (edge > A && edge > B)) return printf("-1"), 0;
  while (A < edge && B < edge) {
    if (A < B) {
      long long ways = (B - A) / B + 1;
      A += B * ways;
      cnt += ways;
    } else {
      long long ways = (A - B) / A + 1;
      B += A * ways;
      cnt += ways;
    }
  }
  printf("%I64d", cnt);
  return 0;
}
