using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; class TEST{ static void Main(){ Sol mySol =new Sol(); mySol.Solve(); } } class Sol{ public void Solve(){ int n = 0; while(X > 1 + 1e-9){ X--; n++; } var tot = f(X); for(int i=1;i<=n;i++){ tot -= 1.0/(X+i)/(X+i); } Console.WriteLine(tot); } double f(double x){ if(x < 1e-9) return Math.PI*Math.PI/6.0; return 4.0 * (f((x+1)/2.0) + f(x/2.0)) + 1.0/(x+1)/(x+1); } double X; public Sol(){ X = rd(); } 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(char sep=' '){return Console.ReadLine().Split(sep);} static int[] ria(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>int.Parse(e));} static long[] rla(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>long.Parse(e));} static double[] rda(char sep=' '){return Array.ConvertAll(Console.ReadLine().Split(sep),e=>double.Parse(e));} }