#include <cstdio>
#include <cmath>
using namespace std;
long long arie, perim, p[5][5];
void citire();
void rezolva();
long long ari(int,int,int);
long long per(int,int,int);
long long min(long long,long long );
long long max(long long,long long );
void afiseaza();
int main()
{
citire();
rezolva();
afiseaza();
return 0;
}
void citire()
{
freopen("reuniune.in","r",stdin);
scanf("%lld %lld %lld %lld",&p[1][0],&p[1][1],&p[1][2],&p[1][3]);
scanf("%lld %lld %lld %lld",&p[2][0],&p[2][1],&p[2][2],&p[2][3]);
scanf("%lld %lld %lld %lld",&p[3][0],&p[3][1],&p[3][2],&p[3][3]);
}
void afiseaza()
{
freopen("reuniune.out","w",stdout);
printf("%lld %lld\n",arie,perim);
}
void rezolva()
{
arie+=ari(1,1,1)+ari(2,2,2)+ari(3,3,3)-ari(1,2,2)-ari(1,3,3)-ari(2,3,3)+ari(1,2,3);
perim+=per(1,1,1)+per(2,2,2)+per(3,3,3)-per(1,2,2)-per(1,3,3)-per(2,3,3)+per(1,2,3);
}
long long ari(int k,int l, int m)
{
long long x1,x2,y1,y2;
x1=max(max(p[k][0],p[l][0]),p[m][0]);
x2=min(min(p[k][2],p[l][2]),p[m][2]);
y1=max(max(p[k][1],p[l][1]),p[m][1]);
y2=min(min(p[k][3],p[l][3]),p[m][3]);
if (x2>=x1 && y2>=y1)
return (x2-x1)*(y2-y1);
else
return 0;
}
long long per(int k,int l,int m)
{
long long x1,x2,y1,y2;
x1=max(max(p[k][0],p[l][0]),p[m][0]);
x2=min(min(p[k][2],p[l][2]),p[m][2]);
y1=max(max(p[k][1],p[l][1]),p[m][1]);
y2=min(min(p[k][3],p[l][3]),p[m][3]);
if (x2>=x1 && y2>=y1)
return 2*(x2+y2-x1-y1);
else return 0;
}
long long min(long long a,long long b)
{
if (a<b) return a;
else return b;
}
long long max(long long a,long long b)
{
if (a>b) return a;
else return b;
}