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>).
def main():
    a, b = [int(i) for i in input().split()]
    
    if a < b:
        print(-1)
        return
    if a == b:
        print(b)
        return
    
    result = 10 ** 15
    if (a - b) >= 2 * b:
        l, r = 1, 10 ** 9
        while r - l > 1:
            m = (l + r) // 2
            if a - b <= 2 * b * m:
                r = m
            else:
                l = m
        result = min(result, (a - b) / 2 / l)
    l, r = 1, 10 ** 9
    while r - l > 1:
        m = (l + r) // 2
        if a + b <= 2 * b * (m + 1):
            r = m
        else:
            l = m
    result = min(result, (a + b) / 2 / r)
    print(result)
    
    
main()
