#include <cstdio>
#define P (1LL)
using namespace std;
int t[10][10],i,j;
long long s1,s2,s3,s12,s13,s23,s123,x,y;
int minim(int x,int y)
{
if(x>y) return y;
return x;
}
int maxim(int x,int y)
{
if(x<y) return y;
return x;
}
long long arie(int a,int b)
{
int x,y;
x=minim(t[a][3],t[b][3])-maxim(t[a][1],t[b][1]);
y=minim(t[a][4],t[b][4])-maxim(t[a][2],t[b][2]);
if(x>=0 && y>=0) return P*x*y;
else return 0LL;
}
long long perimetru(int a,int b)
{
int x,y;
x=minim(t[a][3],t[b][3])-maxim(t[a][1],t[b][1]);
y=minim(t[a][4],t[b][4])-maxim(t[a][2],t[b][2]);
if(x>=0 && y>=0) return 2*P*(x+y);
else return 0LL;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for(i=1;i<=3;++i)
for(j=1;j<=4;++j)
scanf("%d",&t[i][j]);
////ARIE///////////////////////////////
s1=P*(t[1][3]-t[1][1])*(t[1][4]-t[1][2]);
s2=P*(t[2][3]-t[2][1])*(t[2][4]-t[2][2]);
s3=P*(t[3][3]-t[3][1])*(t[3][4]-t[3][2]);
s12=arie(1,2);
s13=arie(1,3);
s23=arie(2,3);
x= minim(minim(t[1][3],t[2][3]),t[3][3])- maxim(maxim(t[1][1],t[2][1]),t[3][1]);
y= minim(minim(t[1][4],t[2][4]),t[3][4])- maxim(maxim(t[1][2],t[2][2]),t[3][2]);
if(x>0 && y>0) s123=P*x*y;
else s123=0LL;
printf("%lld ",P*s1+P*s2+P*s3-P*s12-P*s13-P*s23+P*s123);
////PERIMETRU/////////////////////////////////
s1=2*P*(t[1][4]+t[1][3]-t[1][2]-t[1][1]);
s2=2*P*(t[2][4]+t[2][3]-t[2][2]-t[2][1]);
s3=2*P*(t[3][4]+t[3][3]-t[3][2]-t[3][1]);
s12=perimetru(1,2);
s13=perimetru(1,3);
s23=perimetru(2,3);
x= minim(minim(t[1][3],t[2][3]),t[3][3])- maxim(maxim(t[1][1],t[2][1]),t[3][1]);
y= minim(minim(t[1][4],t[2][4]),t[3][4])- maxim(maxim(t[1][2],t[2][2]),t[3][2]);
if(x>0 && y>0) s123=2*P*x+2*P*y;
else s123=0;
printf("%lld\n",P*s1+P*s2+P*s3-P*s12-P*s23-P*s13+P*s123);
return 0;
}