#include #include #include #include #include #include #include #include #include static const int MOD = 1000000007; using ll = long long; using u32 = unsigned; using u64 = unsigned long long; using namespace std; template constexpr T INF = ::numeric_limits::max()/32*15+208; int main() { double p, q; cin >> p >> q; double ok = 0, ng = 1e15; for (int i = 0; i < 100; ++i) { double mid = (ok+ng)/2; if(mid*mid <= p+q*mid*log2(mid)) ok = mid; else ng = mid; } printf("%.10lf\n", ok); return 0; }