#include using namespace std; using ll = long long; using vll = vector; using vvll = vector>; using vpll = vector>; using vs = vector; using pll = pair; #define fi first #define se second #define fore(p,a) for (auto p : a) #define rep(i,n) for(ll i=0; i<(ll)(n); ++i) #define rrep(i,n) for(ll i=(n); i>=0; --i) #define repb(i,a,n) for(ll i=a; i<(ll)(n); ++i) #define all(container) begin(container), end(container) #define rall(container) rbegin(container), rend(container) const ll INF = 1LL << 60; const double PI = 3.141592653589793238462643383279; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } ll fact(ll x) { return x == 0 ? 1 : x * fact(x - 1); } ll comb(ll n, ll r) { if (r == 0 || r == n) return 1; else if (r == 1) return n; return comb(n - 1, r - 1) + comb(n - 1, r); } void prfl(double x) { printf("%.15f\n", x); } bool ise(ll x) { return x % 2 == 0; } bool dv(ll x, ll y) { return x % y == 0; } int ci(char c) { return c - '0'; } char ic(int i) { return '0' + i; } bool isl(char c) { return 'a' <= c && c <= 'z'; } bool isu(char c) { return 'A' <= c && c <= 'Z'; } int main() { ll n; double p; cin >> n >> p; if (n >= 200) cout << 1 << '\n'; else { prfl(1 - pow(1-p,n)); } }