def gcd(a,b): if b==0: return a else: return gcd(b,a%b) a,b=map(int,input().split()) a=abs(a) b=abs(b) if a==0 and b==0: print(0.25) elif a==0 or b==0: k=max(a,b) ans=0 for x in range(1,20+1,k): for y in range(1,20+1,k): ans+=1/((x+y)**(x+y)) print(ans) else: g=gcd(a,b) a//=g b//=g ans=0.25 for x in range(1,20+1,g): for y in range(1,20+1,g): if x==1 and y==1: continue if (a+b)%2==0: if (x+y)%2==0: ans+=1/((x+y)**(x+y)) else: ans+=1/((x+y)**(x+y)) print(ans)