#include <cstdio>
#include <algorithm>
using namespace std;
struct drept {
long long x1,x0,y1,y0;
}d1,d2,d3;
long long S,P;
long long perimetru(drept d)
{
long long k=2*(d.x1-d.x0)+2*(d.y1-d.y0);
return k;
}
long long arie(drept d)
{
long long k=(d.x1-d.x0);
k*=(d.y1-d.y0);
return k;
}
drept intersectie(drept d1,drept d2)
{
drept aux;
aux.x0=max(d1.x0,d2.x0);
aux.x1=min(d1.x1,d2.x1);
aux.y0=max(d1.y0,d2.y0);
aux.y1=min(d1.y1,d2.y1);
if((aux.x0>aux.x1) || (aux.y0>aux.y1))
aux.x0=aux.x1=aux.y0=aux.y1=0;
return aux;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%lld%lld%lld%lld",&d1.x0,&d1.y0,&d1.x1,&d1.y1);
scanf("%lld%lld%lld%lld",&d2.x0,&d2.y0,&d2.x1,&d2.y1);
scanf("%lld%lld%lld%lld",&d3.x0,&d3.y0,&d3.x1,&d3.y1);
S=arie(d1);
S+=arie(d2);
S+=arie(d3);
S+=-arie(intersectie(d1,d2))-arie(intersectie(d2,d3))-arie(intersectie(d1,d3));
S+=arie(intersectie(intersectie(d1,d2),d3));
P=perimetru(d1)+perimetru(d2)+perimetru(d3)-perimetru(intersectie(d1,d2))-perimetru(intersectie(d2,d3))-perimetru(intersectie(d1,d3))+perimetru(intersectie(intersectie(d1,d2),d3));
printf("%lld %lld\n",S,P);
}