#include <bits/stdc++.h>
using namespace std;

#define int long long
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

double p, q;
bool isOK(double n){
	return n*n <= p+q*n*log2(n);
}

signed main(){
	cin >> p >> q;

	double l, r;
	l = 1;
	r = 1e18;

	int cnt = 0;
	while(r-l > 1e-6){
		double mid = (r+l)/2;
		if(isOK(mid)) l = mid;
		else r = mid; 
		cnt++;
		if(cnt == 1000){
			break;
		}
	}

	printf("%.12lf\n", l);

	return 0;
}