import math def Bisect_Float(ok,ng,is_ok,eps=1e-12,cnt=0): if cnt: for _ in range(cnt): mid=(ok+ng)/2 if is_ok(mid): ok=mid else: ng=mid else: while abs(ok-ng)/max(ok,ng,1)>eps: mid=(ok+ng)/2 if is_ok(mid): ok=mid else: ng=mid return ok P,Q=map(int,input().split()) def is_ok(N): return N*N>P+Q*N*math.log2(N) ans=Bisect_Float(1e10,1e-10,is_ok) print(ans)