#include <cstdio>
#include <utility>
typedef long long ll;
using namespace std;
typedef struct coord {
ll x0, y0, x1, y1;
} coord;
coord A, B, C, AB, BC, AC, ABC;
void read() {
freopen( "reuniune.in", "r", stdin);
freopen( "reuniune.out", "w", stdout);
scanf("%lld%lld%lld%lld", &A.x0, &A.y0, &A.x1, &A.y1);
scanf("%lld%lld%lld%lld", &B.x0, &B.y0, &B.x1, &B.y1);
scanf("%lld%lld%lld%lld", &C.x0, &C.y0, &C.x1, &C.y1);
}
pair<ll,ll> intersect_segment(ll xS, ll xE, ll yS, ll yE) {
if ( yS >= xS && yS <= xE ) {
if ( yE >= xS && yE <= xE )
return make_pair(yS, yE);
else
return make_pair(yS, xE);
} else if ( xS >= yS && xS <= yE ){
if ( xE >= yS && xE <= yE )
return make_pair(xS, xE);
else
return make_pair(xS, yE);
}
return make_pair(1, 0);
}
coord intersect_rectangle(coord F, coord S) {
pair<ll, ll> xs = intersect_segment(F.x0, F.x1, S.x0, S.x1);
pair<ll, ll> ys = intersect_segment(F.y0, F.y1, S.y0, S.y1);
coord C;
C.x0 = xs.first;
C.x1 = xs.second;
C.y0 = ys.first;
C.y1 = ys.second;
return C;
}
bool check_coord(coord C) {
if (C.x0 != 1 || C.x1 != 0)
if (C.y0 != 1 || C.y1 != 1)
return false;
return true;
}
ll compute_area(coord C) {
if (check_coord(C))
return 0L;
else
return (C.x1 - C.x0) * (C.y1 - C.y0);
}
ll compute_perimeter(coord C) {
if (check_coord(C))
return 0L;
else
return 2 * ((C.x1 - C.x0) + (C.y1 - C.y0));
}
bool check_interesect_rectangle(coord A, coord B) {
if (A.x0 <= B.x0 && B.x0 <= A.x1 &&
B.y0 <= A.y0 && A.y0 <= B.y1)
return true;
if (A.x0 <= B.x1 && B.x1 <= A.x1 &&
B.y0 <= A.y0 && A.y0 <= B.y1)
return true;
if (B.x0 <= A.x0 && A.x0 <= B.x1 &&
A.y0 <= B.y0 && B.y0 <= A.y1)
return true;
if (B.x0 <= A.x1 && A.x1 <= B.x1 &&
A.y0 <= B.y0 && B.y0 <= A.y1)
return true;
return false;
}
int main() {
read();
AB = intersect_rectangle(A, B);
BC = intersect_rectangle(B, C);
AC = intersect_rectangle(A, C);
ABC = intersect_rectangle(A, BC);
ll area = compute_area(A) + compute_area(B) + compute_area(C)
- compute_area(AB) - compute_area(BC) - compute_area(AC) +
compute_area(ABC),
perimeter = compute_perimeter(A) + compute_perimeter(B) + compute_perimeter(C)
-compute_perimeter(AB) - compute_perimeter(BC) - compute_perimeter(AC) +
compute_perimeter(ABC);
printf("%lld %lld\n", area, perimeter);
}