#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int x[4],y[4];
int pole = 0;
cin>>x[0]>>y[0]>>x[1]>>y[1]>>x[2]>>y[2]>>x[3]>>y[3];
pole = (x[1] - x[0])*(y[1] - y[0]) + (x[3] - x[2])*(y[3] - y[2]);
if (x[1]<x[2]||x[0]>x[3]||y[0]>y[3]||y[2]>y[1])
cout<<pole;
else
{
sort ( x , x + 4 );
sort ( y , y + 4 );
pole = pole - (x[2]-x[1])*(y[2]-y[1]);
cout<<pole;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpCnsKICAgIGludCB4WzRdLHlbNF07CiAgICBpbnQgcG9sZSA9IDA7CiAgICBjaW4+PnhbMF0+PnlbMF0+PnhbMV0+PnlbMV0+PnhbMl0+PnlbMl0+PnhbM10+PnlbM107CiAgICBwb2xlID0gKHhbMV0gLSB4WzBdKSooeVsxXSAtIHlbMF0pICsgKHhbM10gLSB4WzJdKSooeVszXSAtIHlbMl0pOwogICAgaWYgKHhbMV08eFsyXXx8eFswXT54WzNdfHx5WzBdPnlbM118fHlbMl0+eVsxXSkKICAgICAgICBjb3V0PDxwb2xlOwogICAgZWxzZQogICAgewogICAgICAgIHNvcnQgKCB4ICwgeCArIDQgKTsKICAgICAgICBzb3J0ICggeSAsIHkgKyA0ICk7CiAgICAgICAgcG9sZSA9IHBvbGUgLSAoeFsyXS14WzFdKSooeVsyXS15WzFdKTsKICAgICAgICBjb3V0PDxwb2xlOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==