#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct punct
{ long long x,y;
}p1,p2,q1,q2,m1,m2;
long long ar,per;
void intersectie(punct p1,punct p2,punct q1,punct q2,punct &r1,punct &r2 )
{ r1.x=max(p1.x,q1.x);
r1.y=max(p1.y,q1.y);
r2.x=min(p2.x,q2.x);
r2.y=min(p2.y,q2.y);
}
int verif(punct r1,punct r2)
{ if(r1.x<=r2.x&&r1.y<=r2.y) return 1;
return 0;
}
long long arie(punct p1,punct p2)
{ return(p2.x-p1.x)*(p2.y-p1.y);
}
long long perim(punct p1,punct p2)
{
return 2*(p2.x-p1.x)+2*(p2.y-p1.y);
}
int main()
{ punct r1,r2,t1,t2,v1,v2,n1,n2;
f>>p1.x>>p1.y>>p2.x>>p2.y>>q1.x>>q1.y>>q2.x>>q2.y>>m1.x>>m1.y>>m2.x>>m2.y;
ar=arie(p1,p2)+arie(q1,q2)+arie(m1,m2);
per=perim(p1,p2)+perim(q1,q2)+perim(m1,m2);
intersectie(p1,p2,q1,q2,r1,r2);
if(verif(r1,r2)) {ar=ar-arie(r1,r2); per=per-perim(r1,r2);}
intersectie(p1,p2,m1,m2,t1,t2);
if(verif(t1,t2)) {ar=ar-arie(t1,t2); per=per-perim(t1,t2);}
intersectie(m1,m2,q1,q2,v1,v2);
if(verif(v1,v2)) {ar=ar-arie(v1,v2); per=per-perim(v1,v2);}
intersectie(p1,p2,v1,v2,n1,n2);
if(verif(n1,n2)) {ar=ar+arie(n1,n2); per=per+perim(n1,n2);}
g<<ar<<' '<<per;
return 0;
}