#include <stdio.h>
#include <algorithm>
using namespace std;
struct date { int x1,x2,y1,y2; };
int n;
date t[5];
inline int abss(int x)
{
if (x<0) return (-x); else return x;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for (int i=1;i<=3;i++) {
scanf("%d %d %d %d",&t[i].x1,&t[i].y1,&t[i].x2,&t[i].y2);
swap(t[i].y1,t[i].y2);
}
long long int sola=0,solp=0;
for (int i=1;i<=3;i++)
sola=sola+1LL*abss(t[i].x1-t[i].x2)*abss(t[i].y1-t[i].y2),
solp=solp+2*abss(t[i].x1-t[i].x2)+2*abss(t[i].y1-t[i].y2);
for (int i=1;i<=3;i++)
for (int j=i+1;j<=3;j++) {
int x11=t[i].x1,x12=t[i].x2; int y11=t[i].y1,y12=t[i].y2;
int x21=t[j].x1,x22=t[j].x2; int y21=t[j].y1,y22=t[j].y2;
if (x11>x12) swap(x11,x12);
if (y11>y12) swap(y11,y12);
if (x21>x22) swap(x21,x22);
if (y21>y22) swap(y21,y22);
if (max(x11,x21)<min(x12,x22) && max(y11,y21)<min(y12,y22))
sola=sola-1LL*(min(x12,x22)-max(x11,x21))*(min(y12,y22)-max(y11,y21)),
solp=solp-2*(min(x12,x22)-max(x11,x21))-2*(min(y12,y22)-max(y11,y21));
}
int x1=0,x2=2e9,y1=0,y2=2e9;
for (int i=1;i<=3;i++) {
x1=max(x1,t[i].x1); x2=min(x2,t[i].x2);
y1=max(y1,t[i].y2); y2=min(y2,t[i].y1);
}
if (x1<x2 && y1<y2) sola=sola+1LL*(x2-x1)*(y2-y1),solp=solp+2*(x2-x1)*(y2-y1);
printf("%lld %lld",sola,solp);
return 0;
}