#include <iostream>
#include <vector>
#include <complex>
#include <cmath>
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
void speed_it() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
}
void fileIO() {
freopen("equal.in", "r", stdin);
//freopen("equal.out", "w", stdout);
}
const ld EPS = 1e-9 ;
using T = long double;
using pt = std::complex<T>;
#define x real()
#define y imag()
const ld PI = acos(-1.0L);
T cross(pt v, pt w) {return v.x * w.y - v.y * w.x;}
struct Line {
pt v;
T c;
Line(pt p, pt q) : v(q - p), c(cross(v, p)) {}
Line(T a, T b, T _c) : v({b, -a}), c(-_c) {}
} ;
T sq(pt p) {return p.x*p.x + p.y*p.y;}
pt perp(pt p) {return {-p.y, p.x};}
pt circumCenter(pt a, pt b, pt c) {
b = b-a, c = c-a;
assert(cross(b,c) != 0);
return a + perp(b*sq(c) - c*sq(b))/cross(b,c)/(T)2;
}
Line bisector(Line l1, Line l2, bool interior) {
assert(cross(l1.v, l2.v) != 0);
T sign = interior ? 1 : -1;
return {l2.v/abs(l2.v) + l1.v/abs(l1.v) * sign , l2.c/abs(l2.v) + l1.c/abs(l1.v) * sign};
}
bool line_inter(Line l1, Line l2, pt& out) {
T d = cross(l1.v, l2.v);
if (std::abs(d) < EPS) return false;
out = (l2.v * l1.c - l1.v * l2.c) / d;
return true;
}
signed main() {
speed_it() ;
//fileIO() ;
ll l , b ; cin >> l >> b ;
T y1 =sqrt(l*l-b*b/4.0) ;
pt A = {(T)(-b/2.0) , 0.0} , B = {(T)(b/2.0) , 0.0 }, C = {0.0 , y1} ;
if (2*l <= b ) {
cout << -1 ;
return 0 ;
}
Line l1 (A , B) ;
Line l2(A , C) ;
Line l3 (B,C) ;
pt center = circumCenter(A , B , C) ;
Line b1 =bisector(l1 , l2 , 1 ) ;
Line b2 = bisector(l1 , l3 , 0) ;
pt out ;
line_inter(b1 , b2 , out ) ;
cout << fixed << setprecision(6) << abs(center.y - out.y) << endl ;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y29tcGxleD4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQp2b2lkIHNwZWVkX2l0KCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwp9CnZvaWQgZmlsZUlPKCkgewogICAgZnJlb3BlbigiZXF1YWwuaW4iLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3BlbigiZXF1YWwub3V0IiwgInciLCBzdGRvdXQpOwp9CmNvbnN0IGxkIEVQUyA9IDFlLTkgIDsKdXNpbmcgVCA9IGxvbmcgZG91YmxlOwp1c2luZyBwdCA9IHN0ZDo6Y29tcGxleDxUPjsKI2RlZmluZSB4IHJlYWwoKQojZGVmaW5lIHkgaW1hZygpCmNvbnN0IGxkIFBJID0gYWNvcygtMS4wTCk7ClQgY3Jvc3MocHQgdiwgcHQgdykge3JldHVybiB2LnggKiB3LnkgLSB2LnkgKiB3Lng7fQpzdHJ1Y3QgTGluZSB7CiAgICBwdCB2OwogICAgVCBjOwogICAgTGluZShwdCBwLCBwdCBxKSA6IHYocSAtIHApLCBjKGNyb3NzKHYsIHApKSB7fQogICAgTGluZShUIGEsIFQgYiwgVCBfYykgOiB2KHtiLCAtYX0pLCBjKC1fYykge30KfSA7ClQgc3EocHQgcCkge3JldHVybiBwLngqcC54ICsgcC55KnAueTt9CnB0IHBlcnAocHQgcCkge3JldHVybiB7LXAueSwgcC54fTt9CnB0IGNpcmN1bUNlbnRlcihwdCBhLCBwdCBiLCBwdCBjKSB7CiAgICBiID0gYi1hLCBjID0gYy1hOwogICAgYXNzZXJ0KGNyb3NzKGIsYykgIT0gMCk7CiAgICByZXR1cm4gYSArIHBlcnAoYipzcShjKSAtIGMqc3EoYikpL2Nyb3NzKGIsYykvKFQpMjsKfQpMaW5lIGJpc2VjdG9yKExpbmUgbDEsIExpbmUgbDIsIGJvb2wgaW50ZXJpb3IpIHsKICAgIGFzc2VydChjcm9zcyhsMS52LCBsMi52KSAhPSAwKTsKICAgIFQgc2lnbiA9IGludGVyaW9yID8gMSA6IC0xOwogICAgcmV0dXJuIHtsMi52L2FicyhsMi52KSArIGwxLnYvYWJzKGwxLnYpICogc2lnbiAgLCBsMi5jL2FicyhsMi52KSArIGwxLmMvYWJzKGwxLnYpICogc2lnbn07Cn0KYm9vbCBsaW5lX2ludGVyKExpbmUgbDEsIExpbmUgbDIsIHB0JiBvdXQpIHsKICAgIFQgZCA9IGNyb3NzKGwxLnYsIGwyLnYpOwogICAgaWYgKHN0ZDo6YWJzKGQpIDwgRVBTKSByZXR1cm4gZmFsc2U7CiAgICBvdXQgPSAobDIudiAqIGwxLmMgLSBsMS52ICogbDIuYykgLyBkOwogICAgcmV0dXJuIHRydWU7Cn0Kc2lnbmVkIG1haW4oKSB7CiAgICBzcGVlZF9pdCgpIDsKICAgIC8vZmlsZUlPKCkgOwogICAgbGwgbCAsIGIgOyBjaW4gPj4gbCA+PiBiIDsKICAgIFQgeTEgPXNxcnQobCpsLWIqYi80LjApIDsKICAgIHB0IEEgID0geyhUKSgtYi8yLjApICwgIDAuMH0gLCBCID0geyhUKShiLzIuMCkgLCAwLjAgIH0sIEMgPSB7MC4wICAsIHkxfSA7CiAgICBpZiAoMipsIDw9IGIgKSB7CiAgICAgICAgY291dCA8PCAtMSA7CiAgICAgICAgcmV0dXJuIDAgOwogICAgfQogICAgTGluZSBsMSAoQSAsIEIpIDsKICAgIExpbmUgbDIoQSAsIEMpIDsKICAgIExpbmUgbDMgKEIsQykgOwogICAgcHQgY2VudGVyID0gIGNpcmN1bUNlbnRlcihBICwgQiAsIEMpIDsKICAgIExpbmUgYjEgID1iaXNlY3RvcihsMSAsIGwyICwgMSApIDsKICAgIExpbmUgYjIgPSBiaXNlY3RvcihsMSAsIGwzICwgMCkgOwogICAgcHQgb3V0IDsKICAgIGxpbmVfaW50ZXIoYjEgLCBiMiAsIG91dCApIDsKICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpIDw8IGFicyhjZW50ZXIueSAtIG91dC55KSA8PCBlbmRsIDsKICAgIHJldHVybiAwOwp9