#include //#include using namespace std; //using namespace atcoder; using ll = long long; using ull = unsigned long long; using P = pair; #define rep(i,n) for(ll i = 0;i < (ll)n;i++) #define ALL(x) (x).begin(),(x).end() #define MOD 1000000007 int main(){ cout << fixed << setprecision(20); ll a,b; cin >> a >> b; ll c = __gcd(abs(a),abs(b)); long double res = 0; if(c > 18 || (a == 0 && b == 0)){ cout << 0.25 << "\n"; return 0; } rep(i,20)rep(j,20){ ll dd = 2+c*i+c*j; if(dd > 20)break; __int128_t k = 1; rep(g,dd)k = k*dd; if(k >= (ll)1e16)break; res += (long double)1.0/k; } cout << res << "\n"; return 0; }