#include <stdio.h>
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
long long x11,x12,y11,y12,x21,x22,y21,y22,x31,x32,y31,y32,abx1,abx2,bcx1,bcx2,acx1,acx2,aby1,aby2,bcy1,bcy2,acy1,acy2,abcx1,abcx2,abcy1,abcy2;
long long a(int x1,int y1,int x2,int y2)
{
return (x2-x1)*(y2-y1);
}
long long p(int x1,int y1,int x2,int y2)
{
return 2*(x2-x1)+2*(y2-y1);
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%lld%lld%lld%lld",&x11,&y11,&x12,&y12);
scanf("%lld%lld%lld%lld",&x21,&y21,&x22,&y22);
scanf("%lld%lld%lld%lld",&x31,&y31,&x32,&y32);
abx1=max(x11,x21);
bcx1=max(x21,x31);
acx1=max(x11,x31);
abx2=min(x12,x22);
bcx2=min(x22,x32);
acx2=min(x12,x32);
abcx1=max(abx1,x31);
abcx2=min(abx2,x32);
aby1=max(y11,y21);
bcy1=max(y21,y31);
acy1=max(y11,y31);
aby2=min(y12,y22);
bcy2=min(y22,y32);
acy2=min(y12,y32);
abcy1=max(aby1,y31);
abcy2=min(aby2,y32);
if (abx1>abx2||aby1>aby2)
abx1=abx2=aby1=aby2=0;
if (bcx1>bcx2||bcy1>bcy2)
bcx1=bcx2=bcy1=bcy2=0;
if (acx1>acx2||acy1>acy2)
acx1=acx2=acy1=acy2=0;
if (abcx1>abcx2||abcy1>abcy2)
abcx1=abcx2=abcy1=abcy2=0;
printf("%lld %lld\n",a(x11,y11,x12,y12)+a(x21,y21,x22,y22)+a(x31,y31,x32,y32)-a(abx1,aby1,abx2,aby2)-a(bcx1,bcy1,bcx2,bcy2)-a(acx1,acy1,acx2,acy2)+a(abcx1,abcy1,abcx2,abcy2),p(x11,y11,x12,y12)+p(x21,y21,x22,y22)+p(x31,y31,x32,y32)-p(abx1,aby1,abx2,aby2)-p(bcx1,bcy1,bcx2,bcy2)-p(acx1,acy1,acx2,acy2)+p(abcx1,abcy1,abcx2,abcy2));
return 0;
}