Let us call a pair of integer numbers m-perfect, if at least one number in the pair is greater than or equal to m. Thus, the pairs (3, 3) and (0, 2) are 2-perfect while the pair (-1, 1) is not.

Two integers x, y are written on the blackboard. It is allowed to erase one of them and replace it with the sum of the numbers, (x + y).

What is the minimum number of such operations one has to perform in order to make the given pair of integers m-perfect?

Input

Single line of the input contains three integers x, y and m ( - 1018 ≤ x, y, m ≤ 1018).

Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preffered to use the cin, cout streams or the %I64d specifier.

Output

Print the minimum number of operations or "-1" (without quotes), if it is impossible to transform the given pair to the m-perfect one.

Examples

Input

1 2 5


Output

2


Input

-1 4 15


Output

4


Input

0 -1 5


Output

-1

Note

In the first sample the following sequence of operations is suitable: (1, 2) <image> (3, 2) <image> (5, 2).

In the second sample: (-1, 4) <image> (3, 4) <image> (7, 4) <image> (11, 4) <image> (15, 4).

Finally, in the third sample x, y cannot be made positive, hence there is no proper sequence of operations.
import java.util.*;

public class PerfectPair317A
{
    public static void main(String[] args) 
    {
        // Set up scanner
        Scanner sc = new Scanner(System.in); 
        // System.out.println("Enter x");
        long x = sc.nextLong();
        // System.out.println("Enter y");
        long y = sc.nextLong();
        // System.out.println("Enter m");
        long m = sc.nextLong();
        
        if (x>=m || y>=m)     // Nothing to do
        {
            System.out.println(0);
            return;
        }
        
        if (x<=0 && y<=0)    // Impossible
        {
            System.out.println(-1);
            return;
        }
        
        long a = Math.min(x,y);
        long b = Math.max(x,y);
        long count = 0;
        
        // First process if a<0, since its different--BASIC LOOP TOO SLOW
        /* while (a < 0)
        {
            a = a + b;
            count++;
        }
        */
       
       if (a<0)
       {
           long pos = -a;
           if (pos % b == 0)
           {
               count += pos/b;
               a = 0;
           }
           else
           {
               count += (pos/b)+1;
               a += count*b;
            }
        }
            
        // Now they are both non-negative--proceed

        while (a < m && b < m)
        {
            long sum = a+b;
            a = b;
            b = sum;
            count++;
        }
        System.out.println(count);
    }
}
       
        
        
