#include<iostream>
#include<algorithm>
#include<fstream>
using namespace std;
struct drept
{
long long x1,y1,x2,y2;
};
drept p1,p2,p3;
int inters(drept p,drept q)
{
if(!(p.x2<q.x1||q.x2<p.x1||p.y1>q.y2&&q.y1>p.y2))
return 1;
else
return 0;
}
long long inter3(drept p,drept q,drept t,int z)
{
long long rx1,rx2,ry1,ry2;
rx1=max(p.x1,q.x1);
rx2=min(p.x2,q.x2);
ry1=max(p.y1,q.y1);
ry2=min(p.y2,q.y2);
rx1=max(rx1,t.x1);
ry1=max(ry1,t.y1);
rx2=min(rx2,t.x2);
ry2=min(ry2,t.y2);
if(z==0)
return (rx2-rx1)*(ry2-ry1);
else
return 2*(rx2-rx1+ry2-ry1);
}
long long arint(drept p,drept q,int z)
{
long long rx1,rx2,ry1,ry2;
rx1=max(p.x1,q.x1);
ry1=max(p.y1,q.y1);
rx2=min(p.x2,q.x2);
ry2=min(p.y2,q.y2);
if(z==0)
return (rx2-rx1)*(ry2-ry1);
else
return 2*(rx2-rx1+ry2-ry1);
}
int main()
{
ifstream f("reuniune.in");
ofstream g("reuniune.out");
f>>p1.x1>>p1.y1>>p1.x2>>p1.y2;
f>>p2.x1>>p2.y1>>p2.x2>>p2.y2;
f>>p3.x1>>p3.y1>>p3.x2>>p3.y2;
long long arie1,arie2,arie3,ariefin,per1,per2,per3,perfin;
arie1=(p1.x2-p1.x1)*(p1.y2-p1.y1);
arie2=(p2.x2-p2.x1)*(p2.y2-p2.y1);
arie3=(p3.x2-p3.x1)*(p3.y2-p3.y1);
per1=2*((p1.x2-p1.x1)+(p1.y2-p1.y1));
per2=2*((p2.x2-p2.x1)+(p2.y2-p2.y1));
per3=2*((p3.x2-p3.x1)+(p3.y2-p3.y1));
ariefin=arie1+arie2+arie3;
perfin=per1+per2+per3;
if(inters(p1,p2))
{ariefin=ariefin-arint(p1,p2,0);
perfin=perfin-arint(p1,p2,1);
}
if(inters(p1,p3))
{ariefin=ariefin-arint(p1,p3,0);
perfin=perfin-arint(p1,p3,1);
}
if(inters(p2,p3))
{ariefin=ariefin-arint(p2,p3,0);
perfin=perfin-arint(p2,p3,1);}
if(inters(p1,p2)&&inters(p2,p3)&&inters(p3,p1))
{
ariefin=ariefin+inter3(p1,p2,p3,0);
perfin=perfin+inter3(p1,p2,p3,1);
}
g<<ariefin<<" "<<perfin<<endl;
}