#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("reuniune.in");
ofstream fout("reuniune.out");
vector<long long>X0(3);
vector<long long>Y0(3);
vector<long long>X1(3);
vector<long long>Y1(3);
long long max3(long long a, long long b, long long c) {
if (a > b && a > c)
{
return a;
}
else if (b > c)
{
return b;
}
return c;
}
long long min3(long long a, long long b, long long c) {
if (a < b && a < c)
{
return a;
}
else if (b < c)
{
return b;
}
return c;
}
bool intersectie(int x0,int y0,int xf0,int yf0,int x1,int y1,int xf1,int yf1){
if(min(xf0,xf1)-min(x0,x1)<0 && min(yf0,yf1)-min(y0,y1)<0){
return false;
}
return true;
}
int main()
{
long long arie = 0;
long long perimetru = 0;
for (long long i = 0; i < 3; ++i) {
fin >> X0[i] >> Y0[i] >> X1[i] >> Y1[i];
arie += (X1[i] - X0[i] ) * (Y1[i] - Y0[i]);
perimetru += ((X1[i] - X0[i] ) + (Y1[i] - Y0[i] )) * 2;
}
if((!intersectie(X0[0],Y0[0],X1[0],Y1[0],X0[1],Y0[1],X1[1],Y1[1]) && !intersectie(X0[0],Y0[0],X1[0],Y1[0],X0[2],Y0[2],X1[2],Y1[2]))&&!intersectie(X0[1],Y0[1],X1[1],Y1[1],X0[2],Y0[2],X1[2],Y1[2])){
fout<<arie<<" "<<perimetru<<"\n";
}else{
// cout << arie<<endl;
for (long long i = 0; i < 3; ++i) {
for (long long j = i+1; j < 3; ++j) {
arie-= max((long long)0,(min(X1[i], X1[j]) - max(X0[i], X0[j]))) * max((long long)0,(min(Y1[i], Y1[j]) - max(Y0[i], Y0[j])));
// cout << max(0, (min(X1[i], X1[j]) - max(X0[i], X0[j]))) * max(0, (min(Y1[i], Y1[j]) - max(Y0[i], Y0[j]))) << endl;
// cout << max(0, (min(X1[i], X1[j]) - max(X0[i], X0[j]))) << " " << max(0, (min(Y1[i], Y1[j]) - max(Y0[i], Y0[j]))) << endl << endl;
if(min(X1[i], X1[j]) - max(X0[i], X0[j])>=0 &&(min(Y1[i], Y1[j]) - max(Y0[i], Y0[j])>=0)){
perimetru -= 2*(max((long long)0,(min(X1[i], X1[j]) - max(X0[i], X0[j]))) + max((long long)0,(min(Y1[i], Y1[j]) - max(Y0[i], Y0[j]))));
}
// cout<<perimetru<<endl;
}
}
// cout<<perimetru<<endl;
//cout <<arie<<endl;
for (long long i = 0; i < 3; ++i) {
for (long long j = i+1; j < 3; ++j) {
for (long long k = j+1; k < 3; ++k) {
arie += max((long long)0,(min3(X1[k],X1[i], X1[j]) - max3(X0[k],X0[i], X0[j]))) * max((long long)0,(min3(Y1[k], Y1[i], Y1[j]) - max3(Y0[k],Y0[i], Y0[j])));
// cout << "long longersectie 3: "<<max(0, (min3(X1[k], X1[i], X1[j]) - max3(X0[k], X0[i], X0[j]) + 1)) << endl;
perimetru +=2*(max((long long)0,(min3(X1[k],X1[i], X1[j]) - max3(X0[k],X0[i], X0[j]))) + max((long long)0,(min3(Y1[k], Y1[i], Y1[j]) - max3(Y0[k],Y0[i], Y0[j]))));
}
}
}
// cout<<arie<<endl;
fout << abs(arie) <<" "<<abs(perimetru)<< endl;
}
return 0;
}