#include<stdio.h>
int ar, p, ar1, ar2, ar3, art, p1, p2, p3, pt, a1, a2, a3;
struct punct{
int x, y;
};
struct drept{
punct sj, ds;
};
drept d1, d2, d3, r1, r2, r3, rt;
int verf(drept d1, drept d2){
return (d1.sj.y <= d2.ds.y && d1.ds.x >= d2.sj.x && d2.sj.y <= d1.ds.y && d2.ds.x >= d1.sj.x);
}
punct ds(drept d1, drept d2){
punct A;
if (d1.ds.x < d2.ds.x)
A.x = d1.ds.x;
else
A.x = d2.ds.x;
if (d1.ds.y < d2.ds.y)
A.y = d1.ds.y;
else
A.y = d2.ds.y;
return A;
}
punct sj(drept d1, drept d2){
punct A;
if (d1.sj.x > d2.sj.x)
A.x = d1.sj.x;
else
A.x = d2.sj.x;
if (d1.sj.y > d2.sj.y)
A.y = d1.sj.y;
else
A.y = d2.sj.y;
return A;
}
void inchid(){
printf("%d %d\n", ar, p);
fclose(stdin);
fclose(stdout);
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%d%d%d%d", &d1.sj.x, &d1.sj.y, &d1.ds.x, &d1.ds.y);
scanf("%d%d%d%d", &d2.sj.x, &d2.sj.y, &d2.ds.x, &d2.ds.y);
scanf("%d%d%d%d", &d3.sj.x, &d3.sj.y, &d3.ds.x, &d3.ds.y);
a1 = verf(d1, d2);
a3 = verf(d1, d3);
a2 = verf(d2, d3);
r1.ds = ds(d1, d2);
r1.sj = sj(d1, d2);
r2.ds = ds(d2, d3);
r2.sj = sj(d2, d3);
r3.ds = ds(d1, d3);
r3.sj = sj(d1, d3);
rt.ds = ds(r1, d3);
rt.sj = sj(r1, d3);
p1 = 2*(r1.ds.y-r1.sj.y)+2*(r1.ds.x-r1.sj.x);
p2 = 2*(r2.ds.y-r2.sj.y)+2*(r2.ds.x-r2.sj.x);
p3 = 2*(r3.ds.y-r3.sj.y)+2*(r3.ds.x-r3.sj.x);
ar1 = (r1.ds.y-r1.sj.y)*(r1.ds.x-r1.sj.x);
ar2 = (r2.ds.y-r2.sj.y)*(r2.ds.x-r2.sj.x);
ar3 = (r3.ds.y-r3.sj.y)*(r3.ds.x-r3.sj.x);
pt = 2*(rt.ds.y-rt.sj.y)+2*(rt.ds.x-rt.sj.x);
art = (rt.ds.y-rt.sj.y)*(rt.ds.x-rt.sj.x);
if (!a1){
p1 = 0;
ar1 = 0;
art = 0;
pt = 0;
}
if (!a2){
p2 = 0;
ar2 = 0;
art = 0;
pt = 0;
}
if (!a3){
p3 = 0;
ar3 = 0;
art = 0;
pt = 0;
}
ar = (d1.ds.y-d1.sj.y)*(d1.ds.x-d1.sj.x)+(d2.ds.y-d2.sj.y)*(d2.ds.x-d2.sj.x)+(d3.ds.y-d3.sj.y)*(d3.ds.x-d3.sj.x)-ar1-ar2-ar3+art;
p = 2*(d1.ds.y-d1.sj.y)+2*(d1.ds.x-d1.sj.x)+2*(d2.ds.y-d2.sj.y)+2*(d2.ds.x-d2.sj.x)+2*(d3.ds.y-d3.sj.y)+2*(d3.ds.x-d3.sj.x)-p1-p2-p3+pt;
inchid();
return 0;
}