#include <cstdio>
#include <algorithm>
using namespace std;
struct DREPTUNGHI
{
int x0,y0,x1,y1;
};
long long arie(DREPTUNGHI d)
{
return(((long long)d.x1-d.x0)*(d.y1-d.y0));
}
long long perimetru(DREPTUNGHI d)
{
return 2LL*((d.x1-d.x0)+(d.y1-d.y0));
}
DREPTUNGHI intersectie(DREPTUNGHI d1,DREPTUNGHI d2)
{
DREPTUNGHI d12;
d12.x0=max(d1.x0,d2.x0);
d12.x1=min(d1.x1,d2.x1);
d12.y0=max(d1.y0,d2.y0);
d12.y1=min(d1.y1,d2.y1);
if((d12.x0>d12.x1)||(d12.y0>d12.y1))
d12.x0=d12.y0=d12.x1=d12.y1=0;
return d12;
}
void afisare(DREPTUNGHI d)
{
printf("%d%d%d%d\n",d.x0,d.y0,d.x1,d.y1);
}
int main(void)
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
int a,b,c,d,p;
long long a2;
DREPTUNGHI d1,d2,d3;
scanf("%d%d%d%d",&a,&b,&c,&d);
d1.x0=a;
d1.y0=b;
d1.x1=c;
d1.y1=d;
scanf("%d%d%d%d",&a,&b,&c,&d);
d2.x0=a;
d2.y0=b;
d2.x1=c;
d2.y1=d;
scanf("%d%d%d%d",&a,&b,&c,&d);
d3.x0=a;
d3.y0=b;
d3.x1=c;
d3.y1=d;
DREPTUNGHI d12,d13,d23,d123;
d12=intersectie(d1,d2);
d13=intersectie(d1,d3);
d23=intersectie(d2,d3);
d123=intersectie(d12,d3);
long long ar, p;
ar = arie(d1) + arie(d2) + arie(d3) - arie(d12) - arie(d13) - arie(d23) + arie(d123);
p = perimetru(d1) + perimetru(d2) + perimetru(d3) - perimetru(d12) - perimetru(d13) - perimetru(d23) + perimetru(d123);
printf("%lld %lld", ar, p);
return 0;
}