#include <bits/stdc++.h>
using namespace std;
int n, i, j, k;
double p, q, sum, t1, t2, ans, a[101][101], A[101][101], B[101][101],
    f[101][101], d[101][101], g[101][101], h[101];
int main() {
  scanf("%d%lf", &n, &p);
  p /= 1e9;
  q = 1 - p;
  for (i = 1; i <= 50; i++)
    for (j = 1; j <= 50; j++) {
      if (j == 1) A[i][j] = p;
      if (j == 2) A[i][j] = B[i][j] = q;
      A[i][j] += A[i][j - 1] * A[i - 1][j - 1];
      B[i][j] += B[i][j - 1] * A[i - 1][j - 1];
    }
  for (i = 50; i; i--)
    for (j = 1; j <= 50; j++) {
      A[i][j] *= 1 - A[i - 1][j];
      B[i][j] *= 1 - A[i - 1][j];
    }
  f[1][1] = 1;
  f[1][2] = 2;
  for (i = 2; i <= 50; i++)
    for (j = 1; j <= 50; j++) {
      t1 = t2 = 0;
      if (j == 1)
        for (k = 2; k <= 50; k++)
          t1 += f[i - 1][k] * B[i - 1][k], t2 += B[i - 1][k];
      else
        for (k = 1; k < j; k++)
          t1 += f[i - 1][k] * A[i - 1][k], t2 += A[i - 1][k];
      f[i][j] = j;
      if (t2) f[i][j] += t1 / t2;
    }
  if (n <= 50) {
    for (i = 1; i <= 50; i++) ans += f[n][i] * A[n][i];
    printf("%.10f", ans);
    return 0;
  }
  for (i = 1; i <= 50; i++) d[51][i] = i;
  d[51][51] = 1;
  for (i = 2; i <= 50; i++) sum += B[50][i];
  for (i = 2; i <= 50; i++) d[i][1] = B[50][i] / sum;
  sum = 0;
  for (i = 2; i <= 50; i++) {
    sum += A[50][i - 1];
    for (j = 1; j < i; j++) d[j][i] = A[50][j] / sum;
  }
  n -= 50;
  for (i = 1; i <= 51; i++) g[i][i] = 1;
  for (; n; n /= 2) {
    if (n % 2) {
      for (i = 1; i <= 51; i++)
        for (j = 1; j <= 51; j++) {
          a[i][j] = 0;
          for (k = 1; k <= 51; k++) a[i][j] += d[i][k] * g[k][j];
        }
      for (i = 1; i <= 51; i++)
        for (j = 1; j <= 51; j++) g[i][j] = a[i][j];
    }
    for (i = 1; i <= 51; i++)
      for (j = 1; j <= 51; j++) {
        a[i][j] = 0;
        for (k = 1; k <= 51; k++) a[i][j] += d[i][k] * d[k][j];
      }
    for (i = 1; i <= 51; i++)
      for (j = 1; j <= 51; j++) d[i][j] = a[i][j];
  }
  f[50][51] = 1;
  for (i = 1; i <= 50; i++)
    for (j = 1; j <= 51; j++) h[i] += f[50][j] * g[j][i];
  for (i = 1; i <= 50; i++) ans += h[i] * A[50][i];
  printf("%.10f", ans);
}
