Problem: There is a polyline going through points (0, 0) – (x, x) – (2x, 0) – (3x, x) – (4x, 0) – ... - (2kx, 0) – (2kx + x, x) – .... 

We know that the polyline passes through the point (a, b). Find minimum positive value x such that it is true or determine that there is no such x.

Input

Only one line containing two positive integers a and b (1 ≤ a, b ≤ 109).

Output

Output the only line containing the answer. Your answer will be considered correct if its relative or absolute error doesn't exceed 10 - 9. If there is no such x then output  - 1 as the answer.

Examples

Input

3 1


Output

1.000000000000


Input

1 3


Output

-1


Input

4 1


Output

1.250000000000

Note

You can see following graphs for sample 1 and sample 3. 

<image> <image>

Solution (in JAVA):

Solution:
import java.util.*;

public class Main {
    public static class T implements Comparable<T>{
        long score;
        int i;
        int j;

        T(long score, int i, int j) {
            this.score =score;
            this.i = i;
            this.j = j;
        }
        @Override
        public int compareTo(T o) {
            if (score > o.score)
                 return -1;
            return 1;
        }
    }

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        long a = s.nextInt();
        long b = s.nextInt();

        long kmax = (long)Math.ceil(((double)a - (double)b)/(2 * b));

        double res = Double.MAX_VALUE;

        for (long k = kmax; k >= 1 && k >= kmax - 3; --k) {
            double x1 = (double)(a-b)/(2*k);

            if (x1 >= b && (2 * k * x1 <= a) && (2 * k * x1 + x1 >=a))
                res = Math.min(res, x1);
        }

        kmax = (long)Math.ceil(((double)a + (double)b)/(2 * b));

        for (long k = kmax; k >= 1 && k >= kmax - 3; --k) {
            double x1 = (double)(a + b)/(2*k);

            if (x1 >= b && (2 * k * x1 - x1 <= a) && (2 * k  * x1 >= a))
                res = Math.min(res, x1);
        }

        if (a - b >= b && a < a - b)
            res = Math.min(res, a - b);

        double x0 = (double)(a + b) / 2;

        if (a >= x0 && a <= 2 * x0) {
            res = Math.min(res, x0);
        }

        if (res < Double.MAX_VALUE)
            System.out.println(res);
        else
            System.out.println("-1");

    }
}