#include<stdio.h>
double max(double a,double b)
{
if(a>b)
return a;
else
return b;
}
double min(double a,double b)
{
if(a>b)
return b;
else
return a;
}
int main()
{
double a1,b1,a2,b2,a3,b3,a4,b4,area,t1,t2;
while (scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&a1,&b1,&a2,&b2,&a3,&b3,&a4,&b4)!=EOF)
{
if(a1>a2)
{
t1=a2;
a2=a1;
a1=t1;
}
if(b1>b2)
{
t2=b2;
b2=b1;
b1=t2;
}
if(a3>a4)
{
t1=a4;
a4=a3;
a3=t1;
}
if(b3>b4)
{
t2=b4;
b4=b3;
b3=t2;
}
double l,h;
h=min(b2,b4)-max(b1,b3);
l=min(a2,a4)-max(a1,a3);
if(h<=0||l<=0)
area=0;
else
area=h*l;
printf("%.2lf\n",area);
}
return 0;
}