#include <cstdio>
#include <algorithm>
using namespace std;
struct dreptungi
{
int x0,y0,x1,y1;
}v[4];
int r0,q0,r1,q1;
void reuniune(int a0,int b0,int a1,int b1,int x0,int y0,int x1,int y1);
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
int i,j,ok=1;
long long a=0,p=0;
for(i=1;i<=3;++i)
scanf("%d%d%d%d",&v[i].x0,&v[i].y0,&v[i].x1,&v[i].y1);
for(i=1;i<=3;++i)
{
a=a+1ll*((v[i].x1-v[i].x0)*(v[i].y1-v[i].y0));
p=p+1ll*(((v[i].x1-v[i].x0)+(v[i].y1-v[i].y0))*2);
}
for(i=1;i<3;++i)
for(j=i+1;j<=3;++j)
{
reuniune(v[i].x0,v[i].y0,v[i].x1,v[i].y1,v[j].x0,v[j].y0,v[j].x1,v[j].y1);
if(r0>=r1 or q0>=q1)
ok=0;
if(ok==1)
{
a=a-1ll*((r1-r0)*(q1-q0));
p=p-1ll*(((r1-r0)+(q1-q0))*2);
}
}
if(ok==1)
{
reuniune(v[1].x0,v[1].y0,v[1].x1,v[1].y1,r0,q0,r1,q1);
a=a+1ll*((r1-r0)*(q1-q0));
p=p+1ll*(((r1-r0)+(q1-q0))*2);
}
printf("%lld %lld",a,p);
return 0;
}
void reuniune(int a0,int b0,int a1,int b1,int x0,int y0,int x1,int y1)
{
r0=max(a0,x0);
q0=max(b0,y0);
r1=min(a1,x1);
q1=min(b1,y1);
}