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>).
x, y = [int(x) for x in input().split()]
n1 = x + y
ans1 = -1
ans2 = -1
if n1 // y  - (n1 // y % 2) != 0:
    ans1 = n1 / (n1 // y  - (n1 // y % 2))
n2 = x + y    
if n2 // y  - (n2 // y % 2) != 0:
    ans2 = n2 / (n2 // y  - (n2 // y % 2))
print(min(ans1, ans2))