#include <stdio.h>
#include <stdlib.h>
struct dreptunghi
{
int x1,y1,x2,y2;
}v[4];
int max(int a,int b)
{
if(a>b) return a;
return b;
}
int min(int a,int b)
{
if(a<b) return a;
return b;
}
int main()
{
int i,j,k;
long long rez=0,per=0;
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for(i=1; i<=3; i++)
scanf("%d%d%d%d",&v[i].x1,&v[i].y1,&v[i].x2,&v[i].y2);
for(i=1; i<=3; i++)
rez+=(long long)(v[i].x2-v[i].x1)*(v[i].y2-v[i].y1);
for(i=1; i<3; i++)
for(j=i+1; j<=3; j++)
if(min(v[j].x2,v[i].x2)-max(v[j].x1,v[i].x1)>=0 && min(v[j].y2,v[i].y2)-max(v[j].y1,v[i].y1)>=0)
rez-=(long long)(min(v[j].x2,v[i].x2)-max(v[j].x1,v[i].x1))*(min(v[j].y2,v[i].y2)-max(v[j].y1,v[i].y1));
i=1,j=2,k=3;
if(min(v[k].x2,min(v[j].x2,v[i].x2))-max(v[k].x1,max(v[j].x1,v[i].x1))>=0 && min(v[k].y2,min(v[j].y2,v[i].y2))-max(v[k].y1,max(v[j].y1,v[i].y1))>=0)
rez+=(long long)(min(v[k].x2,min(v[j].x2,v[i].x2))-max(v[k].x1,max(v[j].x1,v[i].x1)))*(min(v[k].y2,min(v[j].y2,v[i].y2))-max(v[k].y1,max(v[j].y1,v[i].y1)));
printf("%lld ",rez);
for(i=1; i<=3; i++)
per+=(long long)2*(v[i].x2-v[i].x1)+2LL*(v[i].y2-v[i].y1);
for(i=1; i<3; i++)
for(j=i+1; j<=3; j++)
if(min(v[j].x2,v[i].x2)-max(v[j].x1,v[i].x1)>=0 && min(v[j].y2,v[i].y2)-max(v[j].y1,v[i].y1)>=0)
per-=(long long)2*(min(v[j].x2,v[i].x2)-max(v[j].x1,v[i].x1))+2LL*(min(v[j].y2,v[i].y2)-max(v[j].y1,v[i].y1));
i=1,j=2,k=3;
if(min(v[k].x2,min(v[j].x2,v[i].x2))-max(v[k].x1,max(v[j].x1,v[i].x1))>=0 && min(v[k].y2,min(v[j].y2,v[i].y2))-max(v[k].y1,max(v[j].y1,v[i].y1))>=0)
per+=(long long)2*(min(v[k].x2,min(v[j].x2,v[i].x2))-max(v[k].x1,max(v[j].x1,v[i].x1)))+2LL*(min(v[k].y2,min(v[j].y2,v[i].y2))-max(v[k].y1,max(v[j].y1,v[i].y1)));
printf("%lld ",per);
return 0;
}