#include<stdio.h>
struct pct {
long x,y;
};
struct dr{
pct p[5];
long long a,per;
};
// 1 inter/0 no inter
// aria inter si perim inter; d dr de inter
int isin(dr d,pct p){
return (p.x>=d.p[1].x&&p.x<=d.p[2].x&&p.y>=d.p[1].y&&p.y<=d.p[3].y);
}
int inter(dr a,dr b, long long &ar,long long &pr,dr& d){
long dx=0L,dy=0L;
int ii=a.p[1].x<=b.p[3].x&&a.p[1].y<=b.p[3].y&&
b.p[1].x<=a.p[3].x&&b.p[1].y<=a.p[3].y;
if(!ii) {ar=0L;pr=0L;return 0;}
if(a.p[1].x<=b.p[1].x&&b.p[1].x<=a.p[2].x&&a.p[2].x<=b.p[2].x)
{
dx=a.p[2].x-b.p[1].x;
d.p[4].x=d.p[1].x=b.p[1].x;
d.p[3].x=d.p[2].x=a.p[2].x;
}
if(a.p[1].x<=b.p[1].x&&b.p[2].x<=a.p[2].x)
{
dx=b.p[2].x-b.p[1].x;
d.p[4].x=d.p[1].x=b.p[1].x;
d.p[3].x=d.p[2].x=b.p[2].x;
}
if(b.p[1].x<=a.p[1].x&&a.p[1].x<=b.p[2].x&&b.p[2].x<=a.p[2].x)
{
dx=b.p[2].x-a.p[1].x;
d.p[4].x=d.p[1].x=a.p[1].x;
d.p[3].x=d.p[2].x=b.p[2].x;
}
if(b.p[1].x<=a.p[1].x&&a.p[2].x<=b.p[2].x)
{
dx=a.p[2].x-a.p[1].x;
d.p[4].x=d.p[1].x=a.p[1].x;
d.p[3].x=d.p[2].x=a.p[2].x;
}
if(a.p[1].y<=b.p[1].y&&b.p[1].y<=a.p[3].y&&a.p[3].y<=b.p[3].y)
{
dy=a.p[3].y-b.p[1].y;
d.p[1].y=d.p[2].y=b.p[1].y;
d.p[4].y=d.p[3].y=a.p[3].y;
}
if(a.p[1].y<=b.p[1].y&&b.p[3].y<=a.p[3].y)
{
dy=b.p[3].y-b.p[1].y;
d.p[1].y=d.p[2].y=b.p[1].y;
d.p[4].y=d.p[3].y=b.p[3].y;
}
if(b.p[1].y<=a.p[1].y&&a.p[1].y<=b.p[3].y&&b.p[3].y<=a.p[3].y)
{
dy=b.p[3].y-a.p[1].y;
d.p[1].y=d.p[2].y=a.p[1].y;
d.p[4].y=d.p[3].y=b.p[3].y;
}
if(b.p[1].y<=a.p[1].y&&a.p[3].y<=b.p[3].y)
{
dy=a.p[3].y-a.p[1].y;
d.p[1].y=d.p[2].y=a.p[1].y;
d.p[4].y=d.p[3].y=a.p[3].y;
}
ar=(long long)dx*dy;
d.a=ar;
if(ar) pr=(long long)dx*2+(long long)dy*2;
else pr=2*(long long)dx+2*(long long)dy;
d.per=pr;
return ii;
}
int main(){
dr v[4]={{{0L,0L}},0L,0L};
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
int i,j;
for(i=1;i<=3;i++){
scanf("%ld%ld%ld%ld",&v[i].p[1].x,&v[i].p[1].y,&v[i].p[3].x,&v[i].p[3].y);
v[i].p[2].x=v[i].p[3].x;v[i].p[2].y=v[i].p[1].y;
v[i].p[4].x=v[i].p[1].x;v[i].p[4].y=v[i].p[3].y;
v[i].a=(long long)(v[i].p[2].x-v[i].p[1].x)*(v[i].p[3].y-v[i].p[1].y);
v[i].per=2*(long long)(v[i].p[2].x-v[i].p[1].x)+
2*(long long)(v[i].p[3].y-v[i].p[1].y);
}
dr d[5];
long long a,pr,at,pert;
int ii,k=0;
//intersectiile
at=pert=0L;pr=0L;
long long m[4][4]={{0L}};
for(i=1;i<4;i++) { at+=v[i].a; pert+=v[i].per;}
for(i=1;i<3;i++)
for(j=i+1;j<=3;j++){
ii=inter(v[i],v[j],a,pr,d[k]);
m[i][j]=a;
m[j][i]=pr;
at-=m[i][j];
pert-=m[j][i];
k++;
}
ii=inter(d[0],d[1],a,pr,d[3]);
if(ii)
ii=inter(d[2],d[3],a,pr,d[4]);
if(ii) {at+=a;pert+=pr;}
printf("%lld %lld\n",at,pert);
for(i=1;i<4;i++)
printf("%1d %5ld %5ld %5lld %5lld\n",
i,v[i].p[2].x-v[i].p[1].x,v[i].p[3].y-v[i].p[1].y,v[i].a,v[i].per);
printf("intersectii\n");
for(i=0;i<5;i++)
printf("%1d %5ld %5ld %5lld %5lld\n",
i,d[i].p[2].x-d[i].p[1].x,d[i].p[3].y-d[i].p[1].y,d[i].a,d[i].per);
return 0;
}