/* Christoph Schwirzer */
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
const double EPS = 1e-10;
const double PI = 2.0 * acos(0.0);

double f(double d, double x, double y)
{
	double r = d / 2.0;
	double u = 2 * r * PI;
	if (x >= u - EPS)
		return r * r * PI * y;
	return 0.0;
}
double doit(double a, double b)
{
	double lower = 0.0;
	double upper = min(a, b);
	bool c = a > b;
	for (int k=0; k<200; k++)
	{
		double d1 = lower + (upper - lower) / 4.0;
		double d2 = lower + (upper - lower) / 4.0 * 3.0;
		if (f(d1, a-(c?d1:0), b-(c?0:d1)) > f(d2, a-(c?d2:0), b-(c?0:d2)) - EPS)
			upper = d2;
		else
			lower = d1;
	}
	return f(lower, a-(c?lower:0), b-(c?0:lower));
}
int main()
{
	double a, b;
	while (scanf("%lf%lf", &a, &b), a > EPS || b > EPS)
	{
		printf("%.3lf\n", max(doit(b, a), doit(a, b)));
	}
	return 0;
}
