#include <fstream>
using namespace std;
ifstream in("reuniune.in");
ofstream out("reuniune.out");
int main()
{
int x1,x2,x3,x4,x5,x6,y1,y2,y3,y4,y5,y6,s,s1;
in>>x1>>y1>>x2>>y2; ///poligon 1
in>>x3>>y3>>x4>>y4; ///poligon 2
in>>x5>>y5>>x6>>y6; ///poligon 3
s=(x2-x1)*(y2-y1)+(x4-x3)*(y4-y3)+(x6-x5)*(y6-y5); ///arie tot
s=s-(min(x2,x4)-max(x1,x3))*(min(y2,y4)-max(y1,y3)); ///intersectie 1 2
s=s-(min(x2,x6)-max(x1,x5))*(min(y2,y6)-max(y1,y5)); ///intersectie 1 3
s=s-(min(x4,x6)-max(x3,x5))*(min(y4,y6)-max(y3,y5)); ///intersectie 2 3
s=s+(min(min(x2,x4),x6)-max(max(x1,x3),x5))*(min(min(y2,y4),y6)-max(max(y1,y3),y5)); ///intersectii triple
out<<s<<" ";
s1=2*((x2-x1)+(y2-y1)+(x4-x3)+(y4-y3)+(x6-x5)+(y6-y5)); ///perimetru total
s1=s1-2*((min(x2,x4)-max(x1,x3))+(min(y2,y4)-max(y1,y3))); /// intersectie 1 2
s1=s1-2*((min(x2,x6)-max(x1,x5))+(min(y2,y6)-max(y1,y5))); ///intersectie 1 3
s1=s1-2*((min(x4,x6)-max(x3,x5))+(min(y4,y6)-max(y3,y5))); ///intersectie 2 3
s1=s1+2*((min(min(x2,x4),x6)-max(max(x1,x3),x5))+(min(min(y2,y4),y6)-max(max(y1,y3),y5))); ///intersectii triple
out<<s1;
return 0;
}