#include <cstdio>
#include <algorithm>
using namespace std;
struct drept{
int x, y, x1, y1;
}a, b, c;
inline long long arie(drept a){
return 1LL * (a.x1 - a.x) * (a.y1 - a.y);
}
inline int per(drept a){
return 1LL * (a.x1 - a.x) * 2 + 1LL * (a.y1 - a.y) * 2;
}
inline drept n(drept a, drept b){
drept c;
c.x = max(a.x, b.x);
c.x1 = min(a.x1, b.x1);
c.y = max(a.y, b.y);
c.y1 = min(a.y1, b.y1);
if(c.x > c.x1 || c.y > c.y1) c.x = c.x1 = c.y = c.y1 = 0;
return c;
}
int main()
{
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
scanf("%d%d%d%d", &a.x, &a.y, &a.x1, &a.y1);
scanf("%d%d%d%d", &b.x, &b.y, &b.x1, &b.y1);
scanf("%d%d%d%d", &c.x, &c.y, &c.x1, &c.y1);
if(a.x > a.x1) swap(a.x, a.x1);
if(a.y > a.y1) swap(a.y, a.y1);
if(b.x > b.x1) swap(b.x, b.x1);
if(b.y > b.y1) swap(b.y, b.y1);
if(c.x > c.x1) swap(c.x, c.x1);
if(c.y > c.y1) swap(c.y, c.y1);
long long A = arie(a) + arie(b) + arie(c) - arie(n(a, b)) - arie(n(c, b)) - arie(n(a, c)) + arie(n(a, n(b, c)));
long long P = per(a) + per(b) + per(c) - per(n(a, b)) - per(n(c, b)) - per(n(a, c)) + per(n(a, n(b, c)));
printf("%lld %lld", A, P);
return 0;
}