#include <iostream>
#include <math.h>
using namespace std;

int main() 
{
	int n=0;
	double x, E, left, right=0.0, differ; 				//начальные переменные.
		scanf("%lf %lf", &x, &E);						//ввод аргумента и погрешности.
	if(fabs(x)>1)										//Модуль аргумента не должен превышать единицу.
	{
		printf("Некорректно задан аргумент x (|x|<1)");
	}
	else
	{
		left=(pow(M_PI,2)/8)-((M_PI/4)*fabs(x));		//вычисление левой части.
		if (E!=0)
		{
			do
			{
				right+=cos((2*n+1)*x)/((4*n*n)+4*n+1);	//вычисление правой части.
				n++;
				differ=right-fabs(left);				//разность левой и правой части.
			}
			while (differ>E);							//условие, при котором цикл останавливается.
			printf("Левая часть равна = %.10lf \nПравая часть равна = %.10lf \n",left,right);
			printf("После n=%d исследуемое выражение отличается от левой части более, чем на %.10lf,", n, E); 
			printf("а именно на %.10lf \n",fabs(differ));
		}	
		else
		{
			printf("Погрешность равна 0, тогда правая часть стремится к левой, и равняется %.10lf, тогда n стремится в бесконечность",left);
		}
	}
	return 0;
}