func_code_string: #include <bits/stdc++.h>   #pragma comment(linker,  /STACK:200000000 )   using namespace std;   const long long oo = 1LL << 60;   const long long kNumMoves = 4;   const long long kMoves[kNumMoves][2] = {{1, 0}, {-1, 0}, {0, -1}, {0, 1}};   long long GetMinMoves(long long x, long long y, long long m) {     if (max(x, y) >= m) return 0;     if ((x + y) <= min(x, y)) return -1;     if (x < y) swap(x, y);     long long cnt = 0;     if (y < 0) {       cnt = (-y / x);       y += cnt * x;     }     if (x < y) swap(x, y);     while (max(x, y) < m) {       long long sum = x + y;       long long mx = max(x, y);       x = (sum < mx) ? mx : sum;       y = (x == sum) ? mx : sum;       ++cnt;     }     return cnt;   }   int main() {     long long x, y, m;     cin >> x >> y >> m;     cout << GetMinMoves(x, y, m) << endl;     int i;     cin >> i;     return 0;   }   