#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 long max2(long long a,long long b,long long c)
{
long long max;
max=a;
if (b>a) max=b;
if (c>max) max=c;
return max;
}
long long min2(long long a,long long b,long long c)
{
long long min;
min=a;
if (b<a) min=b;
if (c<min) min=c;
return min;
}
int main()
{
int i;
long long x0[3],y0[3],x1[3],y1[3];
long long a,p;
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
for (i=0;i<3;i++)
scanf("%lld%lld%lld%lld",&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("%lld%c%lld",a,' ',p);
return 0;
}