using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication13
{
class Program
{
static void Main(string[] args)
{
string input = Console.ReadLine();
int bufor = 0;
double d = 0.0, r = 0.0;
double result=0.0;
for (int i = 0; i < input.Length; i++)
{
if (input[i] == ' ')
{
bufor = i + 1;
r = double.Parse(input.Substring(0, bufor).Replace('.', ','));
break;
}
}
d = double.Parse(input.Substring(bufor, input.Length - bufor).Replace('.', ','));
result = (((r*r)-((d*d)*0.25))* 3.141592654);
Console.WriteLine(Math.Round(result,2).ToString().Replace(',','.'));
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CnVzaW5nIFN5c3RlbS5UZXh0Owp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwoKbmFtZXNwYWNlIENvbnNvbGVBcHBsaWNhdGlvbjEzCnsKICAgIGNsYXNzIFByb2dyYW0KICAgIHsKICAgICAgICBzdGF0aWMgdm9pZCBNYWluKHN0cmluZ1tdIGFyZ3MpCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmcgaW5wdXQgPSBDb25zb2xlLlJlYWRMaW5lKCk7CgogICAgICAgICAgICBpbnQgYnVmb3IgPSAwOwogICAgICAgICAgICBkb3VibGUgZCA9IDAuMCwgciA9IDAuMDsKICAgICAgICAgICAgZG91YmxlIHJlc3VsdD0wLjA7CgogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGlucHV0Lkxlbmd0aDsgaSsrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoaW5wdXRbaV0gPT0gJyAnKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGJ1Zm9yID0gaSArIDE7CgogICAgICAgICAgICAgICAgICAgIHIgPSBkb3VibGUuUGFyc2UoaW5wdXQuU3Vic3RyaW5nKDAsIGJ1Zm9yKS5SZXBsYWNlKCcuJywgJywnKSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CiAgICAgICAgICAgIGQgPSBkb3VibGUuUGFyc2UoaW5wdXQuU3Vic3RyaW5nKGJ1Zm9yLCBpbnB1dC5MZW5ndGggLSBidWZvcikuUmVwbGFjZSgnLicsICcsJykpOwoKICAgICAgICAgICAgcmVzdWx0ID0gKCgocipyKS0oKGQqZCkqMC4yNSkpKiAzLjE0MTU5MjY1NCk7CgogICAgICAgICAgICBDb25zb2xlLldyaXRlTGluZShNYXRoLlJvdW5kKHJlc3VsdCwyKS5Ub1N0cmluZygpLlJlcGxhY2UoJywnLCcuJykpOwogICAgICAgIH0KICAgIH0KfQo=