#include<stdio.h>
#include<math.h>
long arie,perim,p[5][5];
void citire();
void rezolva();
int ar(int );
int per(int );
int inar(int,int);
int inari();
int inper(int,int);
int inperi();
int min(int,int);
int max(int,int);
void afiseaza();
int main()
{
citire();
rezolva();
afiseaza();
return 0;
}
void citire()
{
freopen("reuniune.in","r",stdin);
scanf("%ld %ld %ld %ld",&p[1][0],&p[1][1],&p[1][2],&p[1][3]);
scanf("%ld %ld %ld %ld",&p[2][0],&p[2][1],&p[2][2],&p[2][3]);
scanf("%ld %ld %ld %ld",&p[3][0],&p[3][1],&p[3][2],&p[3][3]);
}
void afiseaza()
{
freopen("reuniune.out","w",stdout);
printf("%ld %ld\n",arie,perim);
}
void rezolva() {
arie+=ar(1)+ar(2)+ar(3);
perim+=per(1)+per(2)+per(3);
arie-=inar(1,2)+inar(1,3)+inar(2,3);
perim-=inper(1,2)+inper(1,3)+inper(2,3);
arie+=inari();
perim+=inperi();
}
int ar(int k) {
return (p[k][2]-p[k][0])*(p[k][3]-p[k][1]);
}
int per(int k) {
return 2*(p[k][2]-p[k][0]+p[k][3]-p[k][1]);
}
int inar(int k,int l) {
int x1,x2,y1,y2;
x2=min(p[k][2],p[l][2]);
x1=max(p[k][0],p[l][0]);
y2=min(p[k][3],p[l][3]);
y1=max(p[k][1],p[l][1]);
if (y2>=y1 && x2>=x1)
return (y2-y1)*(x2-x1);
else return 0;
}
int inari()
{int x1,x2,y1,y2;
x1=max(max(p[1][0],p[2][0]),p[3][0]);
x2=min(min(p[1][2],p[2][2]),p[3][2]);
y1=max(max(p[1][1],p[2][1]),p[3][1]);
y2=min(min(p[1][3],p[2][3]),p[3][3]);
if (x2>=x1 && y2>=y1)
return (x2-x1)*(y2-y1);
else
return 0;
}
int inper(int k,int l){
int x1,x2,y1,y2;
x2=min(p[k][2],p[l][2]);
x1=max(p[k][0],p[l][0]);
y2=min(p[k][3],p[l][3]);
y1=max(p[k][1],p[l][1]);
if (y2>=y1 && x2>=x1)
return 2*(y2-y1+x2-x1);
else
return 0;
}
int inperi()
{int x1,x2,y1,y2;
x1=max(max(p[1][0],p[2][0]),p[3][0]);
x2=min(min(p[1][2],p[2][2]),p[3][2]);
y1=max(max(p[1][1],p[2][1]),p[3][1]);
y2=min(min(p[1][3],p[2][3]),p[3][3]);
if (x2>=x1 && y2>=y1)
return 2*(x2+y2-x1-y1);
else return 0;
}
int min(int a,int b){
if (a<b) return a;
else return b;
}
int max(int a,int b){
if (a>b) return a;
else return b;
}