#include using namespace std; #define REP(i,n) for(int i=0;i ostream& operator<<(ostream& os,const vector& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; } typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef vector vi; typedef vector vvi; int p0,q; double memo[124][100]; double dfs(int p,int depth){ if(depth > 50) return 1; if(memo[p][depth]!=0) return memo[p][depth]; if(depth==0){ return memo[p][depth] = (1 + dfs(min(100,p),depth+1)) / 3.0; } double ret=0; ret += (p/100.0) * (1 + dfs(max(0,p-q),depth+1)) / 2.0; ret += ((100-p)/100.0) * (1 + dfs(min(100,p+q),depth+1)) / 3.0; return memo[p][depth] = ret; } int main(){ CININIT; cin>>p0>>q; printf("%.20f\n",dfs(p0,0)); }