using System; using System.Collections; using System.Collections.Generic; using System.Linq; class TEST{ static void Main(){ Sol mySol =new Sol(); mySol.Solve(); } } class Sol{ public void Solve(){ double[] P=new double[N+1]; for(int i=2;i<=N;i++)P[i]=1.0; P[0]=P[1]=0.0; for(int i=2;i<=N;i++){ double alive=(1-p); for(int j=i+i;j<=N;j+=i)P[j]*=alive; } Console.WriteLine(P.Sum()); } int N; double p; public Sol(){ var d=rsa(); N=int.Parse(d[0]); p=double.Parse(d[1]); } static String rs(){return Console.ReadLine();} static int ri(){return int.Parse(Console.ReadLine());} static long rl(){return long.Parse(Console.ReadLine());} static double rd(){return double.Parse(Console.ReadLine());} static String[] rsa(){return Console.ReadLine().Split(' ');} static int[] ria(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>int.Parse(e));} static long[] rla(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>long.Parse(e));} static double[] rda(){return Array.ConvertAll(Console.ReadLine().Split(' '),e=>double.Parse(e));} }