using static System.Console;
using static System.Math;
class E { static void Main() { new J(); } }
class J
{
	public J()
	{
		var x = double.Parse(ReadLine());
		WriteLine(F(x));
	}
	double F(double x)
	{
		if (x >= 1) return F(x - 1) - Pow(x, -2);
		if (0.25 <= x && x <= 0.75)
		{
			var c = new double[] {
					 0.93480220054467930942,
					-0.82879664423431999560,
					 0.70454551700121861822,
					-0.57904163777787086509,
					 0.46306452510147901007,
					-0.36214936502519405193,
					 0.27808081333064579095,
					-0.21030987302409254018,
					 0.15705320182111169910,
					-0.11604072632543951664,
					 0.084968793761035612149,
					-0.061740360184855212532,
					 0.044566556667895830656};
			return S(x - 0.5, c);
		}
		if (x < 0.25)
		{
			var c = new double[] {
					 1.4332991507927588172,
					-1.8614573783440063140,
					 2.2564383951333535169,
					-2.6012005326441520534,
					 2.8878129570405140919,
					-3.1148483803209104043,
					 3.2849880772359045144,
					-3.4031843451314309792,
					 3.4754027587225681793,
					-3.5078352416557115451,
					 3.5064489012102403649,
					-3.4767544474377607651,
					 3.4237088091689894582};
			return S(x - 0.1, c);
		}
		var d = new double[]{
				0.68797205824263561524,
				-0.45831281882901348093,
				0.29703333861218737779,
				-0.18803923871690626224,
				0.11667622240329387174,
				-0.071165764812470915838,
				0.042774406932876821967,
				-0.025387719551368310359,
				0.014905675313870900126,
				-0.0086698191289996237545,
				0.0050019637904834211830,
				-0.0028655008880623663973,
				0.0016314611646418878806 };
		return S(x - 0.9, d);
	}
	double S(double x, double[] a)
	{
		var s = 0.0;
		for (var i = a.Length - 1; i >= 0; i--) s = a[i] + x * s;
		return s;
	}
}