# include <fstream>
# include <iostream>
# include <cstdlib>
using namespace std;
struct drpt{
int x0, y0, y1, x1;
};
drpt a, b, c;
long long int A, P;
long long int dist (int a, int b)
{
if (a>b)return a-b;
else return b-a;
}
long long int arie (drpt a)
{
return dist(a.x0, a.x1)*dist(a.y0, a.y1);
}
long long int perim (drpt a)
{
return 2*(dist(a.x0, a.x1)+dist(a.y0, a.y1));
}
int in (int x, int y, drpt a)
{
if (x>a.x0 && x<a.x1 && y>a.y0 && y<a.y1)return 1;
return 0;
}
void intersect (drpt a, drpt b)
{
drpt q;
if (a.x0>=b.x0 && a.x1<=b.x1 && a.y0>=b.y0 && a.y1<=b.y1){
A-=arie(a);P-=perim(a);return;}
if (in(a.x0, a.y0, b))
{
if (in(a.x0, a.y1, b))
{
q.x0=a.x0;q.y0=a.y0;q.x1=a.x1;q.y1=b.y1;
A-=arie(q);
P-=(dist(q.x1, q.x0)+2*(dist(q.y0, q.y1)));
}
else if (in (a.x0, a.y1, b))
{
q.x0=a.x0;q.y0=a.y0;q.x1=b.x1;q.y1=a.y1;
A-=arie (q);
P-=(dist(q.y0, q.y1)+2*(dist(q.x0, q.x1)));
}
else
{
q.x0=a.x0;q.y0=a.y0;q.x1=b.x1;q.y1=b.y1;
A-=arie(q);
P-=(dist(q.x0, q.x1)+dist(q.y0, q.y1));
}
}
else if (in(a.x1, a.y1, b))
{
if (in(a.x1, a.y0, b))
{
q.x0=b.x0;q.y0=a.y0;q.x1=a.x1;q.y1=a.y1;
A-=arie (q);
P-=(dist(q.y1, q.y0)+2*dist(q.x0, q.x1));
}
else if (in (a.x0, a.y1, b))
{
q.x0=a.x0;q.y0=b.y0;q.x1=a.x1;q.y1=a.y1;
A-=arie (q);
P-=(dist(q.x0, q.x1)+2*dist(q.y0, q.y1));
}
else
{
q.x0=b.x0;q.y0=b.y0;q.x1=a.x1;q.y1=a.y1;
A-=arie (q);
P-=(dist(q.x0, q.x1)+dist(q.y0, q.y1));
}
}
else if (in(a.x1, a.y0, b))
{
q.x0=b.x0;q.y0=a.y0;q.x1=a.x1;q.y1=b.y1;
A-=arie (q);
P-=(dist(q.x0, q.x1)+dist(q.y0, q.y1));
}
else if (in (a.x0, a.y1, b))
{
q.x0=a.x0;q.y0=b.y0;q.x1=b.x1;q.y1=a.y1;
A-=arie (q);
P-=(perim(a)-dist(q.x0, q.x1)-dist(q.y0, q.y1));
}
}
int main ()
{
ifstream fin ("reuniune.in");
ofstream fout ("reuniune.out");
fin>>a.x0>>a.y0>>a.x1>>a.y1;
A+=arie (a);
P+=perim(a);
fin>>b.x0>>b.y0>>b.x1>>b.y1;
A+=arie (b);
P+=perim(b);
intersect(b, a);
fin>>c.x0>>c.y0>>c.x1>>c.y1;
A+=arie (c);
P+=perim(c);
intersect(c, a);
intersect(c, b);
fout<<A<<" "<<P<<endl;
return 0;
}