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>).
import sys
input = lambda: sys.stdin.readline().rstrip()
from collections import deque,defaultdict,Counter
from itertools import permutations,combinations
from bisect import *
from heapq import *
from math import ceil,gcd,lcm,floor,comb
alph = 'abcdefghijklmnopqrstuvwxyz'
#pow(x,mod-2,mod)

X,Y = map(int,input().split())

k1,k2 = (Y+X)//(Y+Y),(Y-X)//(Y+Y)
x1,x2 = -1,-1
if k1>0:
    x1 = (Y+X)/(k1+k1)
if k2>0:
    x2 = (Y-X)/(k2+k2)

if x1!=-1 and x2!=-1:
    print(min(x1,x2))
elif x1!=-1:
    print(x1)
else:
    print(-1)



