#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using uint = unsigned int; using ll = long long; using ull = unsigned long long; template constexpr T TEN(int n) {return (n==0)?1:10*TEN(n-1);} int bsr(int x) { return 31 - __builtin_clz(x); } using R = double; int p0, q; R calc(int p, int dps = 0) { if (dps >= 100) { return 0; } p = max(0, p); p = min(100, p); R ans = 0; static R dp[101][101]; static bool used[101][101]; if (used[p][dps]) return dp[p][dps]; used[p][dps] = true; R pr = R(p)/100; // use { ans += pr * 1.0/2; ans += pr * 1.0/2 * calc(p-q, dps+1); } // not use { ans += (1-pr) * 1.0/3; ans += (1-pr) * 1.0/3 * calc(p+q, dps+1); } return dp[p][dps] = ans; } int main() { cin >> p0 >> q; R ans = 1.0 / 3 + 1.0/3 * calc(p0); printf("%.20lf\n", ans); return 0; }