#include<stdio.h>
struct drept
{ long long s,d,sus,jos;
};
drept a,b,c,re,re1;
long long arie, perim;
long long min( long long a,long long int b)
{ if(a<b) return a;
return b;
}
long long max( long long a,long long int b)
{ if(a>b) return a;
return b;
}
void intersectie(drept x,drept y)
{
if(y.s<=x.d&&y.d>=x.s&&y.jos<=x.sus&&y.sus>=x.jos)
{
re.s=max(x.s,y.s);
re.d=min(x.d,y.d);
re.jos=max(x.jos,y.jos);
re.sus=min(x.sus,y.sus);
arie-=(re.d-re.s)*(re.sus-re.jos);
perim-=2*(re.d-re.s)+2*(re.sus-re.jos);
}
}
void intersectie1(drept x,drept y)
{
if(y.s<=x.d&&y.d>=x.s&&y.jos<=x.sus&&y.sus>=x.jos)
{
re1.s=max(x.s,y.s);
re1.d=min(x.d,y.d);
re1.jos=max(x.jos,y.jos);
re1.sus=min(x.sus,y.sus);
arie+=(re1.d-re1.s)*(re1.sus-re1.jos);
perim+=2*(re1.d-re1.s)+2*(re1.sus-re1.jos);
}
}
int main()
{ freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%lld %lld %lld %lld",&a.s,&a.jos,&a.d,&a.sus);
scanf("%lld %lld %lld %lld",&b.s,&b.jos,&b.d,&b.sus);
scanf("%lld %lld %lld %lld",&c.s,&c.jos,&c.d,&c.sus);
arie= (a.d-a.s)*(a.sus-a.jos)+(b.d-b.s)*(b.sus-b.jos)+(c.d-c.s)*(c.sus-c.jos);
perim=2*(a.d-a.s)+2*(a.sus-a.jos)+2*(b.d-b.s)+2*(b.sus-b.jos)+2*(c.d-c.s)+2*(c.sus-c.jos);
intersectie(a,b);
intersectie(a,c);
intersectie(b,c);
intersectie1(re,a);
printf("%lld ",arie);
printf("%lld\n",perim);
fclose(stdin);
fclose(stdout);
return 0;
}