#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
long long x1[4],x2[4],y1[4],y2[4],p[10],q[10],k[10],l[10];
inline long long modul(long long a)
{
if(a>0)
return a;
return -a;
}
long long arie1(long long x1,long long x2,long long y1,long long y2)
{
return modul(x2-x1)*modul(y2-y1);
}
long long perimetru1(long long x1,long long x2,long long y1,long long y2)
{
if (x1==x2)
return modul(y2-y1);
if (y1==y2)
return modul(x2-x1);
return 2*(modul(x2-x1)+modul(y2-y1));
}
long long arie2(long long x1,long long x2,long long y1,long long y2,long long a1,long long a2,long long b1,long long b2)
{
if(x2<=a1 || y2<=b1 || a2<=x1 || b2<=y1)
return 0;
p[1]=a1;
p[2]=a2;
p[3]=x1;
p[4]=x2;
sort(p+1,p+5);
q[1]=b1;
q[2]=b2;
q[3]=y1;
q[4]=y2;
sort(q+1,q+5);
return arie1(p[2],p[3],q[2],q[3]);
}
long long perimetru2(long long x1,long long x2,long long y1,long long y2,long long a1,long long a2,long long b1,long long b2)
{
if(x2<=a1 || y2<=b1 || a2<=x1 || b2<=y1)
return 0;
p[1]=a1;
p[2]=a2;
p[3]=x1;
p[4]=x2;
sort(p+1,p+5);
q[1]=b1;
q[2]=b2;
q[3]=y1;
q[4]=y2;
sort(q+1,q+5);
return perimetru1(p[2],p[3],q[2],q[3]);
}
long long arie3(long long x1,long long x2,long long y1,long long y2,long long a1,long long a2,long long b1,long long b2,long long m1,long long m2,long long n1,long long n2)
{
long long p1,p2,q1,q2;
if(x2<=a1 || y2<=b1 || a2<=x1 || b2<=y1)
return 0;
p[1]=a1;
p[2]=a2;
p[3]=x1;
p[4]=x2;
sort(p+1,p+5);
q[1]=b1;
q[2]=b2;
q[3]=y1;
q[4]=y2;
sort(q+1,q+5);
k[1]=p[2];
k[2]=p[3];
l[1]=q[2];
l[2]=q[3];
if(k[2]<=m1 || l[2]<=n1 || m2<=k[1] || n2<=l[1])
return 0;
p[1]=k[1];
p[2]=k[2];
p[3]=m1;
p[4]=m2;
sort(p+1,p+5);
q[1]=l[1];
q[2]=l[2];
q[3]=n1;
q[4]=n2;
sort(q+1,q+5);
return arie1(p[2],p[3],q[2],q[3]);
}
long long perimetru3(long long x1,long long x2,long long y1,long long y2,long long a1,long long a2,long long b1,long long b2,long long m1,long long m2,long long n1,long long n2)
{
long long p1,p2,q1,q2;
if(x2<=a1 || y2<=b1 || a2<=x1 || b2<=y1)
return 0;
p[1]=a1;
p[2]=a2;
p[3]=x1;
p[4]=x2;
sort(p+1,p+5);
q[1]=b1;
q[2]=b2;
q[3]=y1;
q[4]=y2;
sort(q+1,q+5);
k[1]=p[2];
k[2]=p[3];
l[1]=q[2];
l[2]=q[3];
if(k[2]<=m1 || l[2]<=n1 || m2<=k[1] || n2<=l[1])
return 0;
p[1]=k[1];
p[2]=k[2];
p[3]=m1;
p[4]=m2;
sort(p+1,p+5);
q[1]=l[1];
q[2]=l[2];
q[3]=n1;
q[4]=n2;
sort(q+1,q+5);
return perimetru1(p[2],p[3],q[2],q[3]);
}
int main()
{
long long s=0,p=0;
in>>x1[1]>>y1[1]>>x2[1]>>y2[1];
in>>x1[2]>>y1[2]>>x2[2]>>y2[2];
in>>x1[3]>>y1[3]>>x2[3]>>y2[3];
s=arie1(x1[1],x2[1],y1[1],y2[1]);
s+=arie1(x1[2],x2[2],y1[2],y2[2]);
s+=arie1(x1[3],x2[3],y1[3],y2[3]);
s-=arie2(x1[1],x2[1],y1[1],y2[1],x1[3],x2[3],y1[3],y2[3]);
s-=arie2(x1[1],x2[1],y1[1],y2[1],x1[2],x2[2],y1[2],y2[2]);
s-=arie2(x1[2],x2[2],y1[2],y2[2],x1[3],x2[3],y1[3],y2[3]);
s+=arie3(x1[1],x2[1],y1[1],y2[1],x1[2],x2[2],y1[2],y2[2],x1[3],x2[3],y1[3],y2[3]);
out<<s<<" ";
p=0;
p=perimetru1(x1[1],x2[1],y1[1],y2[1]);
p+=perimetru1(x1[2],x2[2],y1[2],y2[2]);
p+=perimetru1(x1[3],x2[3],y1[3],y2[3]);
p-=perimetru2(x1[1],x2[1],y1[1],y2[1],x1[3],x2[3],y1[3],y2[3]);
p-=perimetru2(x1[1],x2[1],y1[1],y2[1],x1[2],x2[2],y1[2],y2[2]);
p-=perimetru2(x1[2],x2[2],y1[2],y2[2],x1[3],x2[3],y1[3],y2[3]);
p+=perimetru3(x1[1],x2[1],y1[1],y2[1],x1[2],x2[2],y1[2],y2[2],x1[3],x2[3],y1[3],y2[3]);
out<<p<<"\n";
return 0;
}