#include #include using namespace std; typedef long long ll; typedef vector vec; typedef vector mat; typedef pair P; typedef priority_queue,greater

> P_queue; const ll MOD=998244353; const ll mod=1000000007; const ll INF=1e18; const double PI=3.1415926535897932; vec dx={1,0,-1,0}; vec dy={0,1,0,-1}; #define REP(i,a,b) for(int i=(int)a;i<(int)b;i++) #define rep(i,n) REP(i,0,n) #define pb push_back #define mp make_pair #define ALL(a) a.begin(),a.end() #define SORT(a) sort(ALL(a)) #define U_ERASE(V) V.erase(unique(ALL(V)), V.end()); #define ADD(a,b) a=(a+b)%mod ll yaku[6000000]; ll YAKU(ll x){ if(yaku[x]>0) return yaku[x]; if(x==1) return 1; ll K=2; ll Count=0; ll a=x; while(true){ if(a%K){ if(Count) return yaku[x]=(1+Count)*YAKU(a); else { if(K*K>a) return yaku[x]=2; K++; } } else{ a/=K; Count++; } } } int main(){ ll N; cin>>N; double p; cin>>p; double ans=0; //REP(i,2,N+1) cout<