Please subscribe to the official Codeforces channel in Telegram via the link: https://t.me/codeforces_official.
×

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ACM-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

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-2018 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Dec/12/2018 11:51:34 (d1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|