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=