#include <bits/stdc++.h>
#define MAX 131072
#define MOD 1000000007
using namespace std;
const int INF = (int)2100000000;
int v[9][5];
long long aria, per, tempAria, tempPer;
void reun(int i, int j, int k){
if(v[i][2] >= v[j][2] && v[i][4] <= v[j][4]){
v[k][2] = v[j][2];
v[k][4] = v[j][4];
} else if(v[i][4] < v[j][2] && v[i][2] >= v[j][2]){
v[k][2] = v[j][2];
v[k][4] = v[i][4];
} else if(v[i][2] <= v[j][2] && v[i][4] <= v[j][4]){
v[k][2] = v[i][2];
v[k][4] = v[j][4];
} else if(v[i][2] <= v[j][2] && v[i][4] >= v[j][4]){
v[k][2] = v[i][2];
v[k][4] = v[i][4];
}
if(v[i][1] <= v[j][1] && v[j][3] <= v[i][3]){
v[k][1] = v[j][1];
v[k][3] = v[j][3];
} else if(v[i][3] > v[j][1] && v[i][1] <= v[j][1]){
v[k][1] = v[j][1];
v[k][3] = v[i][3];
} else if(v[i][1] < v[j][3] && v[i][3] >= v[j][3]){
v[k][1] = v[i][1];
v[k][3] = v[j][3];
} else if(v[j][1] <= v[i][1] && v[j][3] >= v[i][3]){
v[k][1] = v[i][1];
v[k][3] = v[i][3];
}
}
inline int getLg(int i, int pos){
return abs(v[i][pos] - v[i][pos + 2]);
}
void solve(int i, int j, int k, int sc, bool add){
reun(i, j, k);
tempAria = tempPer = 0;
if(add) tempAria = 1LL * getLg(j, 1) * getLg(j, 2);
if(add) tempPer = 1LL * 2 * (getLg(j, 1) + getLg(j, 2));
aria = aria + tempAria - 1LL * sc * getLg(k, 1) * getLg(k, 2);
per = per + tempPer - 1LL * sc * 2 * (getLg(k, 1) + getLg(k, 2));
}
int main(){
freopen("reuniune.in", "r", stdin);
freopen("reuniune.out", "w", stdout);
for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 4; j++)
scanf("%d", &v[i][j]);
swap(v[i][2], v[i][4]);
}
aria = 1LL * getLg(1, 1) * getLg(1, 2);
per = 1LL * 2 * (getLg(1, 1) + getLg(1, 2));
solve(1, 2, 4, 1, 1);
solve(1, 3, 5, 1, 1);
solve(2, 3, 6, 1, 0);
solve(3, 4, 7, -1, 0);
printf("%lld %lld", aria, per);
return 0;
}