#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a, b, c, d, x, y, z, t, area, perim, A, B, C, D, e, f, g, h, E, F, G, H;
int main(){
ifstream cin ("reuniune.in");
ofstream cout ("reuniune.out");
cin >> a >> b >> c >> d;
cin >> x >> y >> z >> t;
area += (c-a)*(d-b) + (z-x)*(t-y);
perim += 2*(c-a) + 2*(d-b) + 2*(z-x) + 2*(t-y);
A = max(a, x); B = max(b, y); C = min(c, z); D = min(d, t);
if ((C-A)*(D-B) > 0) area -= (C-A)*(D-B), perim -= 2*(C-A) + 2*(D-B);
else if ((C-A)*(D-B) == 0) perim -= 2*max(C-A, D-B);
cin >> e >> f >> g >> h;
area += (g-e)*(h-f);
perim += 2*(g-e + h-f);
E = max(e, x); F = max(f, y); G = min(g, z); H = min(h, t);
if ((G-E)*(H-F) > 0) area -= (G-E)*(H-F), perim -= 2*(G-E+H-F);
else if ((G-E)*(H-F) == 0) perim -= 2*max(G-E, H-F);
A = max(A, E); B = max(B, F); C = min(C, G); D = min(D, H);
if ((C-A)*(D-B) > 0) area += (C-A)*(D-B), perim += 2*(C-A+D-B);
//else if ((C-A)*(D-B) == 0)
E = max(e, a); F = max(f, b); G = min(g, c); H = min(H, d);
if ((G-E)*(H-F) > 0) area -= (G-E)*(H-F), perim -= 2*(G-E+H-F);
else if ((G-E)*(H-F) == 0) perim -= 2*max(G-E, H-F);
cout << area << " " << perim;
return 0;
}