#include<cstdio>
struct dr{
long long x1;
long long x2;
long long y1;
long long y2;
}a,b,c,ab,ac,bc,x;
FILE *f,*g;
long long maxim(long long a,long long b){
if(a>b)
return a;
return b;
}
long long minim(long long a,long long b){
if(a<b)
return a;
return b;
}
void ints(dr a,dr b,dr &c){
c.x1=maxim(a.x1,b.x1);
c.x2=minim(a.x2,b.x2);
c.y1=maxim(a.y1,b.y1);
c.y2=minim(a.y2,b.y2);
if(c.x1>c.x2||c.y1>c.y2){
c.x1=c.x2=c.y1=c.y2=0;
}
}
long long ar(dr a){
return (a.x2-a.x1)*(a.y2-a.y1);
}
long long per(dr a){
return 2*((a.x2-a.x1)+(a.y2-a.y1));
}
int main(){
f=fopen("reuniune.in","r");
g=fopen("reuniune.out","w");
fscanf(f,"%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld",&a.x1,&a.y1,&a.x2,&a.y2,&b.x1,&b.y1,&b.x2,&b.y2,&c.x1,&c.y1,&c.x2,&c.y2);
ints(a,b,ab);
ints(a,c,ac);
ints(b,c,bc);
ints(ab,c,x);
fprintf(g,"%lld %lld",ar(a)+ar(b)+ar(c)-ar(ab)-ar(ac)-ar(bc)+ar(x),per(a)+per(b)+per(c)-per(ab)-per(ac)-per(bc)+per(x));
fclose(f);
fclose(g);
return 0;
}