#include<stdio.h>
typedef struct { long long x,y; }E;
typedef struct { E c,d; }D;
int i;
long long u,v;
E a[4],b[4];
D r[4],e,f,g,h;
long long A(E v,E w) { return (w.x-v.x)*(v.y-w.y); }
long long P(E v,E w) { return 2*((w.x-v.x)+(v.y-w.y)); }
D I(D b,D c) {
D a;
a.c.x=(b.c.x<c.c.x?c.c.x:b.c.x),a.c.y=(b.c.y<c.c.y?b.c.y:c.c.y),a.d.x=(b.d.x<c.d.x?b.d.x:c.d.x),a.d.y=(b.d.y<c.d.y?c.d.y:b.d.y);
return a;
}
int J(D b,D c) { return b.d.x>=c.c.x&&b.c.x<=c.d.x&&b.d.y<=c.c.y&&b.c.y>=c.d.y; }
int main() {
freopen("reuniune.in","r",stdin),freopen("reuniune.out","w",stdout);
for(i=1;i<4;i++)
scanf("%lld%lld%lld%lld",&a[i].x,&a[i].y,&b[i].x,&b[i].y),r[i].c.x=a[i].x,r[i].c.y=b[i].y,r[i].d.x=b[i].x,r[i].d.y=a[i].y;
v+=P(r[i].c,r[i].d),u+=A(r[i].c,r[i].d);
if(J(r[1],r[2]))
e=I(r[1],r[2]),u-=A(e.c,e.d),v-=P(e.c,e.d);
if(J(r[1],r[3]))
f=I(r[1],r[3]),u-=A(f.c,f.d),v-=P(f.c,f.d);
if(J(r[2],r[3]))
g=I(r[2],r[3]),u-=A(g.c,g.d),v-=P(g.c,g.d);
if(J(r[1],r[2])&&J(e,r[3]))
h=I(e,r[3]),u+=A(h.c,h.d),v+=P(h.c,h.d);
printf("%lld %lld",u,v);
}