#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define FOR(i,a,b) for(ll i=a;i<=ll(b);i++)
#define yes() cout << "Yes" << endl
#define no() cout << "No" << endl
using ll = long long;
using ld = long double;
ll gcd(ll x, ll y) { return (x % y)? gcd(y, x % y): y; }
ll lcm(ll x, ll y) { return x / gcd(x, y) * y; }
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
const int MOD = 1000000007;
const long long INF = 1LL <<60;
using P = pair<ll,int>;
using Graph = vector<vector<int>>;
using vi = vector<int>;
using vvi = vector<vi>;
using vl = vector<ll>;
using vs = vector<string>;
//小数の桁数の出力指定
//cout<<fixed<<setprecision(10);

//int⇄string
//string = to_string(int)
//int = atoi(string)

//int⇄char
//int = char - '0'
//char = int + '0'



int main() {
    int n;
    double p;
    cin>>n>>p;

    if(n>=200){
        cout<<1<<endl;
        return 0;
    }

    double res=1-pow(1-p,n);

    cout<<fixed<<setprecision(10)<<res<<endl;




}