Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

No tag edit access

The problem statement has recently been changed. View the changes.

×
A. A Problem about Polyline

time limit per test

1 secondmemory limit per test

256 megabytesinput

standard inputoutput

standard outputThere 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*.

Input

Only one line containing two positive integers *a* and *b* (1 ≤ *a*, *b* ≤ 10^{9}).

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.

Codeforces (c) Copyright 2010-2022 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/22/2022 07:33:22 (g2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|