#include <stdio.h>
#include <stdlib.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"
int Ax, Ay, Bx, By;
int Cx, Cy, Dx, Dy;
int Ex, Ey, Fx, Fy;
int Ox1, Ox2, Oy1, Oy2;
int Px1, Py1, Px2, Py2;
int aria;
int perim;
int main ( void )
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ( "%d%d%d%d%d%d%d%d%d%d%d%d", &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 = abs( Px1-Px2 )*abs( Py1-Py2 ); // intersectia celor 3
aria += abs(Ax-Bx)*abs(Ay-By); // I
aria += abs(Cx-Dx)*abs(Cy-Dy); // II
aria += abs(Ex-Fx)*abs(Ey-Fy); // III
perim += 2*( abs(Px1-Px2) + abs(Py1-Py2) ); // intersectia celor 3
perim += 2*( abs(Ax-Bx) + abs(Ay-By) ); // I
perim += 2*( abs(Cx-Dx) + abs(Cy-Dy) ); // II
perim += 2*( abs(Ex-Fx) + abs(Ey-Fy) ); // III
Ox1 = maxim ( Ax, Cx );
Oy1 = maxim ( Ay, Cy );
Ox2 = minim ( Bx, Dx );
Oy2 = minim ( By, Dy );
aria -= abs(Ox1-Ox2)*abs(Oy1-Oy2);
perim -= 2 * ( abs(Ox1-Ox2) + abs(Oy1-Oy2) );
Ox1 = maxim ( Ax, Ex );
Oy1 = maxim ( Ay, Ey );
Ox2 = minim ( Bx, Fx );
Oy2 = minim ( By, Fy );
aria -= abs(Ox1-Ox2)*abs(Oy1-Oy2);
perim -= 2 * ( abs(Ox1-Ox2) + abs(Oy1-Oy2) );
Ox1 = maxim ( Cx, Ex );
Oy1 = maxim ( Cy, Ey );
Ox2 = minim ( Dx, Fx );
Oy2 = minim ( Dy, Fy );
aria -= abs(Ox1-Ox2)*abs(Oy1-Oy2);
perim -= 2 * ( abs(Ox1-Ox2) + abs(Oy1-Oy2) );
printf ( "%d %d\n", aria, perim); // aria
return 0;
}