#define _USE_MATH_DEFINES
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
#include <ctime>

using namespace std;

typedef long long int64;

#define fore(i,a,b) for (int i = (int)a; i < (int)b; i++)
#define forf(i,n) for (int i = 0; i < (int)n; i++)
#define forb(i,n) for (int i = (int)n-1; i >= 0; i--)

#define INF (int)1E9
#define INF64 (int64)1E18

double r1,r2,l;

inline double f(double r1)
{
	//return r2*r2+(r1-r2)*sqrt(l*l-(r1-r2)*(r1-r2))*(r2+(r1-r2)/3.0);
	return r1*r1*r1*tan(acos((r1-r2)/l))-r2*r2*r2*tan(acos((r1-r2)/l));
}

int main()
{
	//freopen("input.txt","rt",stdin);
	//freopen("output.txt","wt",stdout);
	cin >> l >> r2;
	r2 /= 2.0;
	r1 = r2;
	for (double d = 0.1; d >= 1E-12; d /= 10.0)
	{
		while (f(r1+d) > f(r1)) r1 += d;
		while (f(r1-d) > f(r1)) r1 -= d;
	}
	//for (double s = r2; s < r2+l; s += 0.001) cout << s << " " << M_PI*f(s)/3.0 << endl;
	cout.setf(ios_base::floatfield, ios_base::fixed);
	cout.precision(11);
	cout << M_PI*f(r1)/3.0 << endl;
	return 0;
}