#include #include #include #include #include #include using namespace std; using ll = long long; template using grid = vector>; #define REP(i,n) for(ll i=0;i<(ll)(n);i++) #define REPD(i,n) for(ll i=n-1;i>=0;i--) #define FOR(i,a,b) for(ll i=a;i<=(ll)(b);i++) #define FORD(i,a,b) for(ll i=a-1;i>=(ll)(b);i--) #define input(...) __VA_ARGS__; in(__VA_ARGS__) void print() { std::cout << std::endl; } template void print(Head&& head, Tail&&... tail) { std::cout << head << " "; print(std::forward(tail)...); } void in() { } template void in(Head&& head, Tail&&... tail) { cin >> head; in(std::forward(tail)...); } int Q, P; double binary_search(double l, double r) { double center; REP(i, 100) { center = (l + r) / 2; if (center * center > P + Q * center * log2(center)) { r = center; } else { l = center; } } return center; } int main() { int input(p, q); Q = q; P = p; printf("%.10f\n", binary_search(0, LLONG_MAX)); }