#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define minim(a,b) ((a)<(b)?(a):(b))
#define maxim(a,b) ((a)>(b)?(a):(b))
#define in "reuniune.in"
#define out "reuniune.out"
double Ax, Ay, Bx, By;
double Cx, Cy, Dx, Dy;
double Ex, Ey, Fx, Fy;
double Ox1, Ox2, Oy1, Oy2;
double Px1, Py1, Px2, Py2;
double aria;
double perim;
int main ( void )
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ( "%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf", &Ax, &Ay, &Bx, &By, &Cx, &Cy, &Dx, &Dy, &Ex, &Ey, &Fx, &Fy );
// prima intersectie de dreptunghiuri
Ox1 = maxim ( Ax, Cx );
Oy1 = maxim ( Ay, Cy );
Ox2 = minim ( Bx, Dx );
Oy2 = minim ( By, Dy );
// cea de-a doua
Px1 = maxim ( Ox1, Ex );
Py1 = maxim ( Oy1, Ey );
Px2 = minim ( Ox2, Fx );
Py2 = minim ( Oy2, Fy );
aria = fabs( Px1-Px2 )*fabs( Py1-Py2 ); // intersectia celor 3
aria += fabs(Ax-Bx)*fabs(Ay-By); // I
aria += fabs(Cx-Dx)*fabs(Cy-Dy); // II
aria += fabs(Ex-Fx)*fabs(Ey-Fy); // III
perim += 2*( fabs(Px1-Px2) + fabs(Py1-Py2) ); // intersectia celor 3
perim += 2*( fabs(Ax-Bx) + fabs(Ay-By) ); // I
perim += 2*( fabs(Cx-Dx) + fabs(Cy-Dy) ); // II
perim += 2*( fabs(Ex-Fx) + fabs(Ey-Fy) ); // III
Ox1 = maxim ( Ax, Cx );
Oy1 = maxim ( Ay, Cy );
Ox2 = minim ( Bx, Dx );
Oy2 = minim ( By, Dy );
aria -= fabs(Ox1-Ox2)*fabs(Oy1-Oy2);
perim -= 2 * ( fabs(Ox1-Ox2) + fabs(Oy1-Oy2) );
Ox1 = maxim ( Ax, Ex );
Oy1 = maxim ( Ay, Ey );
Ox2 = minim ( Bx, Fx );
Oy2 = minim ( By, Fy );
aria -= fabs(Ox1-Ox2)*fabs(Oy1-Oy2);
perim -= 2 * ( fabs(Ox1-Ox2) + fabs(Oy1-Oy2) );
Ox1 = maxim ( Cx, Ex );
Oy1 = maxim ( Cy, Ey );
Ox2 = minim ( Dx, Fx );
Oy2 = minim ( Dy, Fy );
aria -= fabs(Ox1-Ox2)*fabs(Oy1-Oy2);
perim -= 2 * ( fabs(Ox1-Ox2) + fabs(Oy1-Oy2) );
printf ( "%.0lf %.0lf\n", aria, perim); // aria
return 0;
}