#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct punct
{
int x, y;
};
long long arie(punct a, punct b)
{
if(a.x < b.x && a.y < b.y)
return 1LL * abs(a.x - b.x) * abs(a.y - b.y);
else return 0;
}
long long perim(punct a, punct b)
{
if(a.x < b.x && a.y < b.y)
return 1LL * abs(a.x - b.x) * 2 + abs(a.y - b.y) * 2;
else return 0;
}
void inters(punct a1, punct a2, punct b1, punct b2, punct &r1, punct &r2)
{
r1.x = max(a1.x, b1.x);
r2.x = min(a2.x, b2.x);
r1.y = max(a1.y, b1.y);
r2.y = min(a2.y, b2.y);
}
int main()
{
punct a1, a2, b1, b2, c1, c2;
f >> a1.x >> a1.y >> a2.x >> a2.y;
f >> b1.x >> b1.y >> b2.x >> b2.y;
f >> c1.x >> c1.y >> c2.x >> c2.y;
punct ab1, ab2, ac1, ac2, bc1, bc2, r1, r2;
inters(a1, a2, b1, b2, ab1, ab2);
inters(a1, a2, c1, c2, ac1, ac2);
inters(c1, c2, b1, b2, bc1, bc2);
///cout<<ab1.x<<' '<<ab1.y<<' '<<ab2.x<<' '<<ab2.y<<endl;
// cout<<bc1.x<<' '<<bc1.y<<' '<<bc2.x<<' '<<bc2.y<<endl;
// cout<<ac1.x<<' '<<ac1.y<<' '<<ac2.x<<' '<<ac2.y<<endl;
inters(ab1, ab2, c1, c2, r1, r2);
///cout<<r1.x<<r1.y<<r2.x<<r2.y;
g << arie(a1, a2) + arie(b1, b2) + arie(c1, c2) -
arie(ab1, ab2) - arie(ac1, ac2) - arie(bc1, bc2) + arie(r1, r2) << ' ';
g << perim(a1, a2) + perim(b1, b2) + perim(c1, c2) -
perim(ab1, ab2) - perim(ac1, ac2) - perim(bc1, bc2) + perim(r1, r2);
return 0;
}