#include <stdio.h>
struct lol
{
long long x1, y1, x2, y2;
};
lol d1, d2, d3, d4;
long long max(long long a, long long b)
{
if (a > b)
return a;
return b;
}
long long max2(long long a, long long b, long long c)
{
return max(max(a, b), c);
}
long long min(long long a, long long b)
{
if (a < b)
return a;
return b;
}
long long min2(long long a, long long b, long long c)
{
return min(min(a, b), c);
}
long long arie(lol a, lol b)
{
lol r;
r.x1 = max(a.x1, b.x1);
r.y1 = max(a.y1, b.y1);
r.x2 = min(a.x2, b.x2);
r.y2 = min(a.y2, b.y2);
if (r.y1 > r.y2 || r.x1 > r.x2)
return 0;
else
return (r.x2-r.x1)*(r.y2-r.y1);
}
long long arie2(lol a, lol b, lol c)
{
lol r;
r.x1 = max2(a.x1, b.x1, c.x1);
r.y1 = max2(a.y1, b.y1, c.y1);
r.x2 = min2(a.x2, b.x2, c.x2);
r.y2 = min2(a.y2, b.y2, c.y2);
if (r.y1 > r.y2 || r.x1 > r.x2)
return 0;
else
return (r.x2-r.x1)*(r.y2-r.y1);
}
long long perim(lol a, lol b)
{
lol r;
r.x1 = max(a.x1, b.x1);
r.y1 = max(a.y1, b.y1);
r.x2 = min(a.x2, b.x2);
r.y2 = min(a.y2, b.y2);
if (r.y1 > r.y2 || r.x1 > r.x2)
return 0;
else
return (r.x2 - r.x1)* 2 + 2 *(r.y2 - r.y1);
}
long long perim2(lol a, lol b, lol c)
{
lol r;
r.x1 = max2(a.x1, b.x1, c.x1);
r.y1 = max2(a.y1, b.y1, c.y1);
r.x2 = min2(a.x2, b.x2, c.x2);
r.y2 = min2(a.y2, b.y2, c.y2);
if (r.y1 > r.y2 || r.x1 > r.x2)
return 0;
else
return (r.x2 - r.x1)* 2 + 2 *(r.y2 - r.y1);
}
int main()
{
freopen ("reuniune.in", "rt", stdin);
freopen ("reuniune.out", "wt", stdout);
scanf("%lld %lld %lld %lld", &d1.x1, &d1.y1, &d1.x2, &d1.y2);
scanf("%lld %lld %lld %lld", &d2.x1, &d2.y1, &d2.x2, &d2.y2);
scanf("%lld %lld %lld %lld", &d3.x1, &d3.y1, &d3.x2, &d3.y2);
scanf("%lld %lld %lld %lld", &d4.x1, &d4.y1, &d4.x2, &d4.y2);
printf("%lld ", (d1.x2 - d1.x1) * (d1.y2 - d1.y1) + (d2.x2 - d2.x1) * (d2.y2 - d2.y1) + (d3.x2 - d3.x1) * (d3.y2 - d3.y1) - arie(d1, d2) - arie(d2, d3) - arie(d1, d3) + arie2(d1, d2, d3));
printf("%lld\n", (d1.x2 - d1.x1)* 2 + 2 *(d1.y2 - d1.y1) + (d2.x2 - d2.x1)* 2 + 2 *(d2.y2 - d2.y1) + (d3.x2 - d3.x1)* 2 + 2 *(d3.y2 - d3.y1) - perim(d1, d2) - perim(d2, d3) - perim(d1, d3) + perim2(d1, d2, d3));
return 0;
}