from math import gcd A,B=map(int,input().split()) if A==B==0: print(0.25) elif A==0 or B==0: C=max(abs(A),abs(B)) if C>=9: print(0.25) else: print([0.291285997062663540407282590596, 0.253927743175264566674009102034,0.250320059608149804379393070974, 0.250021433570507634574389368789, 0.250001214265791058668395963380, 0.250000059604644865383370307350,0.250000002581174791767407290614, 0.250000000100000000000025415281, 0.250000000003504938994813934513, 0.250000000000112156654784615087,0.250000000000003301690955230119, 0.250000000000000089992745297813, 0.250000000000000002283658260521, 0.250000000000000000054210108624,0.250000000000000000001208838648, 0.250000000000000000000025415281, 0.250000000000000000000000505454, 0.250000000000000000000000009537,0.250000000000000000000000000171, 0.250000000000000000000000000003][C-1]) else: g=gcd(A,B) X=0 if g<=20: T=10 else: T=2 if (A//g)%2==(B//g)%2==1: for k in range(T): h=2*k*g+2 X+=(2*k+1)/(h**h) else: for k in range(T): h=k*g+2 X+=(k+1)/(h**h) print(X)