#include <iostream>
#include <fstream>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
int x1[5], x2[5], y1[5], y2[5];
long long rez_arie, rez_perimetru;
void citire()
{
for (int i=1; i<=3; ++i)
{
f >> x1[i] >> y1[i] >> x2[i] >> y2[i];
rez_arie+=(max(x2[i],x1[i])-min(x2[i],x1[i]))*(max(y1[i],y2[i])-min(y1[i],y2[i]));
rez_perimetru+=2*(max(x2[i],x1[i])-min(x2[i],x1[i]))+2*(max(y1[i],y2[i])-min(y1[i],y2[i]));
}
}
int main()
{
citire();
for (int i=1; i<=3; ++i)
{
for (int j=i+1; j<=3; ++j)
{
if (i==j)
continue;
int a=min(x2[i],x2[j]);
int b=max(x1[i],x1[i]);
int c=min(y2[i],y2[j]);
int d=max(y1[i],y1[j]);
rez_arie-=((min(x2[i],x2[j])-(max(x1[i],x1[j])))*(min(y2[i],y2[j])-max(y1[i],y1[j]))>0?(min(x2[i],x2[j])-(max(x1[i],x1[j])))*(min(y2[i],y2[j])-max(y1[i],y1[j])):0);
rez_perimetru-=((2*(min(x2[i],x2[j])-(max(x1[i],x1[j])))+2*(min(y2[i],y2[j])-max(y1[i],y1[j])))>0?(2*(min(x2[i],x2[j])-(max(x1[i],x1[j])))+2*(min(y2[i],y2[j])-max(y1[i],y1[j]))):0);
}
}
rez_arie+=((min(x2[3],min(x2[1],x2[2]))-(max(x1[3],max(x1[1],x1[2]))))*(min(y2[3],min(y2[1],y2[2]))-(max(y1[3],max(y1[1],y1[2]))))>0?(min(x2[3],min(x2[1],x2[2]))-(max(x1[3],max(x1[1],x1[2]))))*(min(y2[3],min(y2[1],y2[2]))-(max(y1[3],max(y1[1],y1[2])))):0);
rez_perimetru+=(2*(min(x2[3],min(x2[1],x2[2]))-(max(x1[3],max(x1[1],x1[2]))))+2*(min(y2[3],min(y2[1],y2[2]))-(max(y1[3],max(y1[1],y1[2]))))>0?2*(min(x2[3],min(x2[1],x2[2]))-(max(x1[3],max(x1[1],x1[2]))))+2*(min(y2[3],min(y2[1],y2[2]))-(max(y1[3],max(y1[1],y1[2])))):0);
g << rez_arie <<' ' << rez_perimetru;
return 0;
}