#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <vector>#include <cmath>#include <queue>#include <set>using namespace std;typedef long long LL;#define N 40int n;double F[N] , p;void work(){ int i ; double x; F[n + 1] = 1 << n; for (i = n ; i >= 1 ; -- i) { double L = (1 << i - 1) / F[i + 1]; if (L <= p) F[i] = F[i + 1] * (1 + p) * (1 - p) / 2.0; else F[i] = (1 << i - 1) * (L - p) + F[i + 1] * (1 + L) * (1 - L) / 2.0; F[i] /= (1 - p); } printf("%.3fn" , F[1]);}int main(){ while (scanf("%d%lf",&n,&p) , n) work(); return 0;}