#include <cmath>
#include <fstream>
#define ll long long
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
struct date
{
ll varf_x, varf_y, colt_x, colt_y;
} drept[3];
void Read()
{
for(int i=1; i<=3; i++)
in >> drept[i].varf_x >> drept[i].varf_y >> drept[i].colt_x >> drept[i].colt_y;
}
int Arie(int i, int j)
{
ll varf_fx, varf_fy, colt_fx, colt_fy;
varf_fx = max(drept[i].varf_x,drept[j].varf_x);
varf_fy = max(drept[i].varf_y,drept[j].varf_y);
colt_fx = min(drept[i].colt_x,drept[j].colt_x);
colt_fy = min(drept[i].colt_y,drept[j].colt_y);
if(colt_fx >= varf_fx && colt_fy >= colt_fx) return (colt_fx - varf_fx) * (colt_fy - varf_fy);
else return 0;
}
int Perimetru(int i, int j)
{
ll varf_fx, varf_fy, colt_fx, colt_fy;
varf_fx = max(drept[i].varf_x,drept[j].varf_x);
varf_fy = max(drept[i].varf_y,drept[j].varf_y);
colt_fx = min(drept[i].colt_x,drept[j].colt_x);
colt_fy = min(drept[i].colt_y,drept[j].colt_y);
if(colt_fx >= varf_fx && colt_fy >= colt_fx) return 2*(abs((colt_fx - varf_fx)) + abs((colt_fy - varf_fy)));
else return 0;
}
int Ariex3()
{
ll varf_fx, varf_fy, colt_fx, colt_fy;
varf_fx = max(drept[1].varf_x,drept[2].varf_x);
varf_fy = max(drept[1].varf_y,drept[2].varf_y);
colt_fx = min(drept[1].colt_x,drept[2].colt_x);
colt_fy = min(drept[1].colt_y,drept[2].colt_y);
varf_fx = max(varf_fx,drept[3].varf_x);
varf_fy = max(varf_fy,drept[3].varf_y);
colt_fx = min(colt_fx,drept[3].colt_x);
colt_fy = min(colt_fy,drept[3].colt_y);
if(colt_fx >= varf_fx && colt_fy >= colt_fx)
return (colt_fx - varf_fx) * (colt_fy - varf_fy);
else return 0;
}
int Perimetrux3()
{
ll varf_fx, varf_fy, colt_fx, colt_fy;
varf_fx = max(drept[1].varf_x,drept[2].varf_x);
varf_fy = max(drept[1].varf_y,drept[2].varf_y);
colt_fx = min(drept[1].colt_x,drept[2].colt_x);
colt_fy = min(drept[1].colt_y,drept[2].colt_y);
varf_fx = max(varf_fx,drept[3].varf_x);
varf_fy = max(varf_fy,drept[3].varf_y);
colt_fx = min(colt_fx,drept[3].colt_x);
colt_fy = min(colt_fy,drept[3].colt_y);
if(colt_fx >= varf_fx && colt_fy >= colt_fx)
return 2*(abs((colt_fx - varf_fx)) + abs((colt_fy - varf_fy)));
else return 0;
}
int Solve()
{
ll ariel = Arie(1,1) + Arie(2,2) + Arie(3,3) + Ariex3() - Arie(1,2) - Arie(2,3) - Arie(1,3);
ll perimeriel = Perimetru(1,1) + Perimetru(2,2) + Perimetru(3,3) + Perimetrux3() - Perimetru(1,2) - Perimetru(2,3) - Perimetru(1,3);
out << ariel << " " << perimeriel << "\n";
}
int main()
{
Read();
Solve();
return 0;
}