#include<stdio.h>
typedef struct punct
{
int x1,y1,x2,y2;
}punct;
punct a,b,c,s1,s2,s3,s4;
inline int max(int a,int b)
{
return a>b?a:b;
}
inline int min(int a,int b)
{
return a<b?a:b;
}
punct inter(punct a,punct b)
{
punct aux;
aux.x1=max(a.x1,b.x1);
aux.y1=max(a.x1,b.x1);
aux.x2=min(a.x2,b.x2);
aux.y2=min(a.y2,b.y2);
if(aux.x1>aux.x2||aux.y1>aux.y2)
aux.x1=aux.x2=aux.y1=aux.y2=0;
}
long long arie(punct a)
{
long long aux;
aux=(long long)(a.x2-a.x1)*(a.y2-a.y1);
if(aux<0)
aux=0;
return aux;
}
long long perimetru(punct a)
{
long long aux;
aux=(long long)(a.x2-a.x1)*2+(a.y2-a.y1)*2;
if(aux<0)
aux=0;
return aux;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
long long s,p;
scanf("%d%d%d%d",&a.x1,&a.y1,&a.x2,&a.y2);
scanf("%d%d%d%d",&b.x1,&b.y1,&b.x2,&b.y2);
scanf("%d%d%d%d",&c.x1,&c.y1,&c.x2,&c.y2);
s1=inter(a,b);
s2=inter(a,c);
s3=inter(b,c);
s4=inter(s1,s2);
s=arie(a)+arie(b)+arie(c)-arie(s1)-arie(s2)-arie(s3)+arie(s4);
p=perimetru(a)+perimetru(b)+perimetru(c)-perimetru(s1)-perimetru(s2)-perimetru(s3)+perimetru(s4);
printf("%lld %lld\n",s,p);
return 0;
}