#include <fstream>
#include <cmath>
using namespace std;
ifstream cin("reuniune.in");
ofstream cout("reuniune.out");
int max(int a, int b) {
if (a > b)
return a;
return b;
}
int min(int a, int b) {
if (a < b)
return a;
return b;
}
int max(int a, int b, int c) {
int max1;
if (a > b)
max1 = a;
else
max1 = b;
if (max1 < c)
max1 = c;
return max1;
}
int min(int a, int b, int c) {
int min1;
if (a < b)
min1 = a;
else
min1 = b;
if (min1 > c)
min1 = c;
return min1;
}
int main() {
int x0[3], y0[3], x1[3], y1[3];
for (int i = 0; i < 3; ++i) {
cin >> x0[i] >> x1[i] >> y0[i] >> y1[i];
}
int AXB = (min(y0[0], y0[1]) - max(x0[0], x0[1])) * (min(y1[0], y1[1]) - max(x1[0], x1[1]));
int AXC = (min(y0[0], y0[2]) - max(x0[0], x0[2])) * (min(y1[0], y1[2]) - max(x1[0], x1[2]));
int BXC = (min(y0[1], y0[2]) - max(x0[1], x0[2])) * (min(y1[1], y1[2]) - max(x1[1], x1[2]));
int AXBXC = (min(y0[0], y0[1], y0[2]) - max(x0[0], x0[1], x0[2])) * (min(y1[0], y1[1], y1[2]) - max(x1[0], x1[1], x1[2]));
//cout << AXB << " " << AXC << " " << BXC << "\n" << AXBXC;
if ((min(y0[0], y0[1]) - max(x0[0], x0[1])) < 0 || (min(y1[0], y1[1]) - max(x1[0], x1[1])) < 0)
AXB = 0;
if ((min(y0[0], y0[2]) - max(x0[0], x0[2])) < 0 || (min(y1[0], y1[2]) - max(x1[0], x1[2])) < 0)
AXC = 0;
if ((min(y0[1], y0[2]) - max(x0[1], x0[2])) < 0 || (min(y1[1], y1[2]) - max(x1[1], x1[2])) < 0)
BXC = 0;
//cout << AXB << " " << AXC << " " << BXC;
if ((min(y0[0], y0[1], y0[2]) - max(x0[0], x0[1], x0[2])) < 0 || (min(y1[0], y1[1], y1[2]) - max(x1[0], x1[1], x1[2])) < 0)
AXBXC = 0;
cout << (y0[0] - x0[0]) * (y1[0] - x1[0]) + (y0[1] - x0[1]) * (y1[1] - x1[1]) + (y0[2] - x0[2]) * (y1[2] - x1[2]) - AXB - AXC - BXC + AXBXC << " ";
AXB = (min(y0[0], y0[1]) - max(x0[0], x0[1])) * 2 + (min(y1[0], y1[1]) - max(x1[0], x1[1])) * 2;
AXC = (min(y0[0], y0[2]) - max(x0[0], x0[2])) * 2 + (min(y1[0], y1[2]) - max(x1[0], x1[2])) * 2;
BXC = (min(y0[1], y0[2]) - max(x0[1], x0[2])) * 2 + (min(y1[1], y1[2]) - max(x1[1], x1[2])) * 2;
AXBXC = abs(min(y0[0], y0[1], y0[2]) - min(y1[0], y1[1], y1[2])) * 2 + abs(max(x0[1], x0[2], x0[0]) - max(x1[0], x1[1], x1[2])) * 2;
if ((min(y0[0], y0[1]) - max(x0[0], x0[1])) < 0 || (min(y1[0], y1[1]) - max(x1[0], x1[1])) < 0)
AXB = 0;
if ((min(y0[0], y0[2]) - max(x0[0], x0[2])) < 0 || (min(y1[0], y1[2]) - max(x1[0], x1[2])) < 0)
AXC = 0;
if ((min(y0[1], y0[2]) - max(x0[1], x0[2])) < 0 || (min(y1[1], y1[2]) - max(x1[1], x1[2])) < 0)
BXC = 0;
//cout << AXB << " " << AXC << " " << BXC;
if ((min(y0[0], y0[1], y0[2]) - max(x0[0], x0[1], x0[2])) < 0 || (min(y1[0], y1[1], y1[2]) - max(x1[0], x1[1], x1[2])) < 0)
AXBXC = 0;
cout << (y0[0] - x0[0]) * 2 + (y1[0] - x1[0]) * 2 + (y0[1] - x0[1]) * 2 + (y1[1] - x1[1]) * 2 + (y0[2] - x0[2]) * 2 + (y1[2] - x1[2]) * 2 - AXB - BXC - AXC + AXBXC;
return 0;
}