#include<stdio.h>
#include<algorithm>
#include<math.h>
using namespace std;
struct DREPTUNGHI { int x1,y1,x2,y2; };
DREPTUNGHI a,b,c,aux;
DREPTUNGHI intersect(DREPTUNGHI D1, DREPTUNGHI D2)
{
DREPTUNGHI RES;
RES.x1=max(D1.x1,D2.x1);
RES.y1=max(D1.y1,D2.y1);
RES.x2=min(D1.x2,D2.x2);
RES.y2=min(D1.y2,D2.y2);
return RES;
}
long long aria (DREPTUNGHI D)
{
long long res;
res=((long long)D.x2-D.x1)*(D.y2-D.y1);
if(res<0)
res=0;
return res;
}
long long perim (DREPTUNGHI D)
{
long long res;
res=((long long)D.x2-D.x1)*2+(D.y2-D.y1)*2;
return res;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
int t1,t2,t3,t4;
long long arie,p;
DREPTUNGHI AC,CB,AB;
scanf("%d%d%d%d",&t1,&t2,&t3,&t4);
a.x1=t1; a.y1=t2; a.x2=t3; a.y2=t4;
scanf("%d%d%d%d",&t1,&t2,&t3,&t4);
b.x1=t1; b.y1=t2; b.x2=t3; b.y2=t4;
scanf("%d%d%d%d",&t1,&t2,&t3,&t4);
c.x1=t1; c.y1=t2; c.x2=t3; c.y2=t4;
AB=intersect(a,b);
AC=intersect(a,c);
CB=intersect(c,b);
arie=aria(a)+aria(b)+aria(c);
arie=arie-aria(AB)-aria(AC)-aria(CB)+aria(intersect(AB,AC));
p=perim(a)+perim(b)+perim(c);
p=p-perim(AB)-perim(AC)-perim(CB)+perim(intersect(AB,AC));
printf("%I64d %I64d",arie,p);
return 0;
}