#include <cstdio>
#define maxim(a,b) (a<b)?b:a
#define minim(a,b) (a<b)?a:b
using namespace std;
struct dreptunghi {
long long x1, y1, x2, y2;
};
dreptunghi a,b,c;
dreptunghi intersectie(dreptunghi a, dreptunghi b) {
dreptunghi aux;
aux.x1 = maxim(a.x1,b.x1);
aux.y1 = maxim(a.y1,b.y1);
aux.x2 = minim(a.x2,b.x2);
aux.y2 = minim(a.y2,b.y2);
if (aux.x1 > aux.x2 || aux.y1 > aux.y2) aux.x1 = aux.y1 = aux.x2 = aux.y2 = 0;
return aux;
}
long long arie(dreptunghi a) {
return (a.x2-a.x1) * (a.y2-a.y1);
}
long long per(dreptunghi a) {
return (a.x2-a.x1+a.y2-a.y1) *2;
}
int main() {
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
scanf("%lld %lld %lld %lld",&a.x1,&a.y1,&a.x2,&a.y2);
scanf("%lld %lld %lld %lld",&b.x1,&b.y1,&b.x2,&b.y2);
scanf("%lld %lld %lld %lld",&c.x1,&c.y1,&c.x2,&c.y2);
long long suprafata = arie(a) + arie(b) + arie(c);
suprafata -= arie(intersectie(a,b)) + arie(intersectie(c,b)) + arie(intersectie(a,c));
suprafata += arie(intersectie(intersectie(a,b),c));
long long perimetru = per(a) + per(b) + per(c);
perimetru -= per(intersectie(a,b)) + per(intersectie(c,b)) + per(intersectie(a,c));
perimetru += per(intersectie(intersectie(a,b),c));
printf("%lld %lld\n",suprafata,perimetru);
return 0;
}