#include <stdio.h>
long max(long a,long b)
{
if (a>b) return a;
return b;
}
long min(long a,long b)
{
if (a<b) return a;
return b;
}
long max2(long a,long b,long c)
{
long max;
max=a;
if (b>a) max=b;
if (c>max) max=c;
return max;
}
long min2(long a,long b,long c)
{
long min;
min=a;
if (b<a) min=b;
if (c<min) min=c;
return min;
}
int main()
{
int i;
long x0[4],y0[4],x1[4],y1[4],a,p;
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for (i=0;i<3;i++)
scanf("%ld%ld%ld%ld",&x0[i],&y0[i],&x1[i],y1[i]);
a=(x1[0]-x0[0])*(y1[0]-y0[0]);
a+=(x1[1]-x0[1])*(y1[1]-y0[1]);
a+=(x1[2]-x0[2])*(y1[2]-y0[2]);
a-=(min(x1[0],x1[1])-max(x0[0],x0[1]))*(min(y1[0],y1[1])-max(y0[0],y0[1]));
a-=(min(x1[2],x1[1])-max(x0[2],x0[1]))*(min(y1[2],y1[1])-max(y0[2],y0[1]));
a-=(min(x1[0],x1[2])-max(x0[0],x0[2]))*(min(y1[0],y1[2])-max(y0[0],y0[2]));
a+=(min2(x1[0],x1[1],x1[2])-max2(x0[0],x0[1],x0[2]))*(min2(y1[2],y1[0],y1[1])-max2(y0[2],y0[0],y0[1]));
p=2*(x1[0]-x0[0])+(y1[0]-y0[0]);
p+=2*(x1[1]-x0[1])+(y1[1]-y0[1]);
p+=2*(x1[2]-x0[2])+(y1[2]-y0[2]);
p-=2*((min(x1[0],x1[1])-max(x0[0],x0[1]))+(min(y1[0],y1[1])-max(y0[0],y0[1])));
p-=2*((min(x1[2],x1[1])-max(x0[2],x0[1]))+(min(y1[2],y1[1])-max(y0[2],y0[1])));
p-=2*((min(x1[0],x1[2])-max(x0[0],x0[2]))+(min(y1[0],y1[2])-max(y0[0],y0[2])));
p+=2*(min2(x1[0],x1[1],x1[2])-max2(x0[0],x0[1],x0[2])+min2(y1[2],y1[0],y1[1])-max2(y0[2],y0[0],y0[1]));
printf("%ld%c%ld",a,' ',p);
return 0;
}