There is a polyline going through points (0, 0) – (*x*, *x*) – (2*x*, 0) – (3*x*, *x*) – (4*x*, 0) – ... - (2*kx*, 0) – (2*kx* + *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*.
Only one line containing two positive integers *a* and *b* (1 ≤ *a*, *b* ≤ 10<sup class="upper-index">9</sup>).

a, b = map(int, input().split())
EPS = 10 ** -10
if (b > a):
    print(-1)
    exit()

left = 0
right = b
while(right - left > EPS):
    z = (right + left) / 2
    if ((a % 2 * z) < z):
        if (b >= a % z):
            right = z
        elif (b < a % z):
            leftt = z
    else:
        if (b >= z - a % z):
            right = z
        elif (b < z - a % z):
            leftt = z

print("%.9f" % right)