#include <fstream>
#include <cmath>
#define LL long long
using namespace std;
ifstream f("reuniune.in");
ofstream g("reuniune.out");
struct rectangle {
LL x, y, x2, y2;
};
rectangle a, b, c;
LL sum;
int nr, i;
LL area(rectangle b) {
return (b.x2-b.x)*(b.y2-b.y);
}
LL peri(rectangle b) {
return 2*((b.x2-b.x)+(b.y2-b.y));
}
LL Ajoin(rectangle a, rectangle b) {
if ( min(a.y2, b.y2) <= max(a.y,b.y) ||
min(a.x2, b.x2) <= max(a.x,b.x) )
return 0;
LL x, y, x2, y2;
y2 = min(a.y2, b.y2);
y = max(a.y , b.y );
x2 = min(a.x2, b.x2);
x = max(a.x , b.x );
return (x2-x)*(y2-y);
}
LL Ajoin3(rectangle a, rectangle b, rectangle c) {
if (Ajoin(a,b)==0||Ajoin(b,c)==0||Ajoin(c,a)==0) return 0;
LL x, y, x2, y2;
y2 = min(c.y2, min(a.y2, b.y2));
y = max(c.y, max(a.y , b.y ));
x2 = min(c.x2, min(a.x2, b.x2));
x = max(c.x, max(a.x , b.x ));
return (x2-x)*(y2-y);
}
LL Pjoin(rectangle a, rectangle b) {
if ( min(a.y2, b.y2) <= max(a.y,b.y) ||
min(a.x2, b.x2) <= max(a.x,b.x) )
return 0;
LL x, y, x2, y2;
y2 = min(a.y2, b.y2);
y = max(a.y , b.y );
x2 = min(a.x2, b.x2);
x = max(a.x , b.x );
return 2*((x2-x)+(y2-y));
}
LL Pjoin3(rectangle a, rectangle b, rectangle c) {
if (Pjoin(a,b)==0||Pjoin(b,c)==0||Pjoin(c,a)==0) return 0;
LL x, y, x2, y2;
y2 = min(c.y2, min(a.y2, b.y2));
y = max(c.y, max(a.y , b.y ));
x2 = min(c.x2, min(a.x2, b.x2));
x = max(c.x, max(a.x , b.x ));
return 2*((x2-x)*(y2-y));
}
void read(rectangle &a) {
f >> a.x >> a.y >> a.x2 >> a.y2;
}
int main() {
read(a); read(b); read(c);
g << (area(a)+area(b)+area(c)) - (Ajoin(a,b)+Ajoin(a,c)+Ajoin(b,c)) + Ajoin3(a,b,c) << ' ';
g << (peri(a)+peri(b)+peri(c)) - (Pjoin(a,b)+Pjoin(a,c)+Pjoin(b,c)) + Pjoin3(a,b,c);
}