#include <cstdio>
#include <cassert>
long long max(long long k1,long long k2)
{
if (k1>k2)
return k1;
else
return k2;
}
long long min(long long k1,long long k2)
{
if (k1<k2)
return k1;
else
return k2;
}
int main()
{
long long arie=0,perimetru=0,x=0,y=0,x1=0,x2=0,x3=0,x4=0,x5=0,x6=0,y1=0,y2=0,y3=0,y4=0,y5=0,y6=0;
assert(freopen("reuniune.in","r",stdin));
assert(freopen("reuniune.out","w",stdout));
assert(scanf("%lld%lld%lld%lld",&x1,&y1,&x2,&y2));
assert(scanf("%lld%lld%lld%lld",&x3,&y3,&x4,&y4));
assert(scanf("%lld%lld%lld%lld",&x5,&y5,&x6,&y6));
arie=(x2-x1)*(y2-y1)+(x4-x3)*(y4-y3)+(x6-x5)*(y6-y5);
x=(min(min(x2,x4),x6)-max(max(x1,x3),x5))*(min(min(y2,y4),y6)-max(max(y1,y3),y5));
perimetru=2*(x2+y2+x4+y4+x6+y6-x1-y1-x3-y3-x5-y5);
y=2*((min(min(x2,x4),x6)-max(max(x1,x3),x5))+(min(min(y2,y4),y6)-max(max(y1,y3),y5)));
if (x>0)
arie+=x;
x=0;
if (min(x2,x4)>=max(x1,x3) && min(y2,y4)>=max(y3,y1))
x=(min(x2,x4)-max(x1,x3))*(min(y2,y4)-max(y3,y1));
if (min(x2,x6)>=max(x1,x5) && min(y2,y6)>=max(y1,y5))
x=x+(min(x2,x6)-max(x1,x5))*(min(y2,y6)-max(y1,y5));
if (min(x6,x4)>=max(x5,x3) && min(y6,y4)>=max(y3,y5))
x=x+(min(x6,x4)-max(x5,x3))*(min(y6,y4)-max(y3,y5));
arie-=x;
if (y>0)
perimetru+=y;
y=0;
if (min(x2,x4)>=max(x1,x3) && min(y2,y4)>=max(y3,y1))
y=2*(min(x2,x4)-max(x1,x3)+min(y2,y4)-max(y3,y1));
if (min(x2,x6)>=max(x1,x5) && min(y2,y6)>=max(y1,y5))
y=y+2*(min(x2,x6)-max(x1,x5)+min(y2,y6)-max(y1,y5));
if (min(x6,x4)>=max(x5,x3) && min(y6,y4)>=max(y3,y5))
y=y+2*(min(x6,x4)-max(x5,x3)+min(y6,y4)-max(y3,y5));
perimetru-=y;
if (min(x2,x4)>max(x1,x3) && min(y2,y4)>max(y3,y1) && (min(x2,x6)<max(x1,x5) || min(y2,y6)<max(y1,y5) || min(x6,x4)<max(x5,x3) || min(y6,y4)<max(y3,y5)))
{
arie=arie-((x6-x5)*(y6-y5));
perimetru=perimetru-(2*(x6+y6-x5-y5));
}
else if ((min(x2,x4)<max(x1,x3) || min(y2,y4)<max(y3,y1) || (min(x2,x6)<max(x1,x5) || min(y2,y6)<max(y1,y5)) && min(x6,x4)>max(x5,x3) && min(y6,y4)>max(y3,y5)))
{
arie=arie-((x2-x1)*(y2-y1));
perimetru=perimetru-(2*(x2+y2-x1-y1));
}
else if ((min(x2,x4)<max(x1,x3) || min(y2,y4)<max(y3,y1) || min(x6,x4)<max(x5,x3) || min(y6,y4)<max(y3,y5)) && min(x2,x6)>max(x1,x5) && min(y2,y6)>max(y1,y5))
{
arie=arie-((x4-x3)*(y4-y3));
perimetru=perimetru-(2*(x6+y6-x5-y5));
}
assert(printf("%lld %lld\n",arie,perimetru));
return 0;
}