#include <cstdio>
#include <algorithm>
using namespace std;
struct POINT
{
int x,y;
};
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
POINT P1[4],P2[4],I[9];
long long a1,a2,a3,a4,a5,a6,a7,a,p,p1,p2,p3,p4,p5,p6,p7;
scanf("%d%d%d%d",&P1[1].x,&P1[1].y,&P2[1].x,&P2[1].y);
scanf("%d%d%d%d",&P1[2].x,&P1[2].y,&P2[2].x,&P2[2].y);
scanf("%d%d%d%d",&P1[3].x,&P1[3].y,&P2[3].x,&P2[3].y);
I[1].x=max(P1[2].x,P1[1].x);
I[1].y=max(P1[1].y,P1[2].y);
I[2].x=min(P2[1].x,P2[2].x);
I[2].y=min(P2[2].y,P2[1].y);
I[3].x=max(P1[3].x,P1[2].x);
I[3].y=max(P1[3].y,P1[2].y);
I[4].x=min(P2[2].x,P2[3].x);
I[4].y=min(P2[2].y,P2[3].y);
I[5].x=max(P1[3].x,P1[1].x);
I[5].y=max(P1[3].y,P1[1].y);
I[6].x=min(P2[1].x,P2[3].x);
I[6].y=min(P2[1].y,P2[3].y);
I[7].x=max(max(I[1].x,I[3].x),I[5].x);
I[7].y=max(max(I[1].y,I[3].y),I[5].y);
I[8].x=min(min(I[2].x,I[4].x),I[6].x);
I[8].y=min(min(I[2].y,I[4].y),I[6].y);
a1=(P2[1].y-P1[1].y)*(P2[1].x-P1[1].x);
a2=(P2[2].y-P1[2].y)*(P2[2].x-P1[2].x);
a3=(P2[3].y-P1[3].y)*(P2[3].x-P1[3].x);
a4=(I[2].x-I[1].x)*(I[2].y-I[1].y);
a5=(I[4].x-I[3].x)*(I[4].y-I[3].y);
a6=(I[6].x-I[5].x)*(I[6].y-I[5].y);
a7=(I[8].x-I[7].x)*(I[8].y-I[7].y);
a=a1+a2+a3-a4-a5-a6+a7;
p1=2*(P2[1].y-P1[1].y+P2[1].x-P1[1].x);
p2=2*(P2[2].y-P1[2].y+P2[2].x-P1[2].x);
p3=2*(P2[3].y-P1[3].y+P2[3].x-P1[3].x);
p4=2*(I[2].y-I[1].y+I[2].x-I[1].x);
p5=2*(I[4].y-I[3].y+I[4].x-I[3].x);
p6=2*(I[6].y-I[5].y+I[6].x-I[5].x);
p7=2*(I[8].y-I[7].y+I[8].x-I[7].x);
p=p1+p2+p3-p4-p5-p6+p7;
printf("%lld %lld",a,p);
return 0;
}