#include <stdio.h>
long long x1, y1, x2, y2, x3, y3, x4, y4, x5, y5, x6, y6;
long long a, p;
void intersect(long long x1, long long y1, long long x2, long long y2, long long x3, long long y3, long long x4, long long y4,
long long* x5, long long* y5, long long* x6, long long* y6) {
//printf("%d %d %d %d ", x3, y3, x4, y4);
if (x1 < x3) {
if (y1 < y3) {
if (x2 < x3)
*x5 = *y5 = *x6 = *y6 = 0;
else if (x2 <= x4) {
if (y2 < y3)
*x5 = *y5 = *x6 = *y6 = 0;
else if (y2 <= y4)
*x5 = x3, *y5 = y3, *x6 = x2, *y6 = y2;
else
*x5 = x3, *y5 = y3, *x6 = x2, *y6 = y4;
}
else {
if (y2 < y3)
*x5 = *y5 = *x6 = *y6 = 0;
else if (y2 <= y4)
*x5 = x3, *y5 = y3, *x6 = x4, *y6 = y2;
else
*x5 = x3, *y5 = y3, *x6 = x4, *y6 = y4;
}
}
else if (y1 <= y4) {
if (x2 < x3)
*x5 = *y5 = *x6 = *y6 = 0;
else if (x2 <= x4) {
if (y2 <= y4)
*x5 = x3, *y5 = y1, *x6 = x2, *y6 = y2;
else
*x5 = x3, *y5 = y1, *x6 = x2, *y6 = y4;
}
else {
if (y2 <= y4)
*x5 = x3, *y5 = y1, *x6 = x4, *y6 = y2;
else
*x5 = x3, *y5 = y1, *x6 = x4, *y6 = y4;
}
}
else {
*x5 = *y5 = *x6 = *y6 = 0;
}
}
else if (x1 <= x4) {
if (y1 < y3) {
if (x2 <= x4) {
if (y2 < y3)
*x5 = *y5 = *x6 = *y6 = 0;
else if (y2 <= y4)
*x5 = x1, *y5 = y3, *x6 = x2, *y6 = y2;
else
*x5 = x1, *y5 = y3, *x6 = x2, *y6 = y4;
}
else {
if (y2 < y3)
*x5 = *y5 = *x6 = *y6 = 0;
else if (y2 <= y4)
*x5 = x1, *y5 = y3, *x6 = x4, *y6 = y2;
else
*x5 = x1, *y5 = y3, *x6 = x4, *y6 = y4;
}
}
else if (y1 <= y4) {
if (x2 <= x4) {
if (y2 <= y4)
*x5 = x1, *y5 = y1, *x6 = x2, *y6 = y2;
else
*x5 = x1, *y5 = y1, *x6 = x2, *y6 = y4;
}
else {
if (y2 <= y4)
*x5 = x1, *y5 = y1, *x6 = x4, *y6 = y2;
else
*x5 = x1, *y5 = y1, *x6 = x4, *y6 = y4;
}
}
else {
*x5 = *y5 = *x6 = *y6 = 0;
}
}
else
*x5 = *y5 = *x6 = *y6 = 0;
}
long long area(long long x1, long long y1, long long x2, long long y2) {
return (x2-x1) * (y2-y1);
}
long long perim(long long x1, long long y1, long long x2, long long y2) {
return 2 * (x2-x1 + y2 - y1);
}
int main() {
long long xtmp1, ytmp1, xtmp2, ytmp2, xtmp3, ytmp3, xtmp4, ytmp4;
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
scanf("%d%d%d%d", &x3, &y3, &x4, &y4);
scanf("%d%d%d%d", &x5, &y5, &x6, &y6);
a += area(x1, y1, x2, y2) + area(x3, y3, x4, y4) + area(x5, y5, x6, y6);
p += perim(x1, y1, x2, y2) + perim(x3, y3, x4, y4) + perim(x5, y5, x6, y6);
intersect(x1, y1, x2, y2, x3, y3, x4, y4, &xtmp1, &ytmp1, &xtmp2, &ytmp2);
a -= area(xtmp1, ytmp1, xtmp2, ytmp2);
p -= perim(xtmp1, ytmp1, xtmp2, ytmp2);
//printf("%d %d %d %d ", xtmp1, ytmp1, xtmp2, ytmp2);
intersect(xtmp1, ytmp1, xtmp2, ytmp2, x5, y5, x6, y6, &xtmp3, &ytmp3, &xtmp4, &ytmp4);
a += area(xtmp3, ytmp3, xtmp4, ytmp4);
p += perim(xtmp3, ytmp3, xtmp4, ytmp4);
intersect(x1, y1, x2, y2, x5, y5, x6, y6, &xtmp1, &ytmp1, &xtmp2, &ytmp2);
//printf("%d %d %d %d ", xtmp1, ytmp1, xtmp2, ytmp2);
a -= area(xtmp1, ytmp1, xtmp2, ytmp2);
p -= perim(xtmp1, ytmp1, xtmp2, ytmp2);
intersect(x3, y3, x4, y4, x5, y5, x6, y6, &xtmp1, &ytmp1, &xtmp2, &ytmp2);
a -= area(xtmp1, ytmp1, xtmp2, ytmp2);
p -= perim(xtmp1, ytmp1, xtmp2, ytmp2);
printf("%d %d\n", a, p);
return 0;
}