#include<stdio.h>
typedef struct punct
{
int x1,y1,x2,y2;
}punct;
punct a,b,c;
inline int max(int a,int b)
{
return a>b?a:b;
}
inline int min(int a,int b)
{
return a<b?a:b;
}
int main()
{
freopen("reuniune.in","r",stdin);
freopen("reuniune.out","w",stdout);
long long l1,l2;
scanf("%d%d%d%d",&a.x1,&a.y1,&a.x2,&a.y2);
scanf("%d%d%d%d",&b.x1,&b.y1,&b.x2,&b.y2);
scanf("%d%d%d%d",&c.x1,&c.y1,&c.x2,&c.y2);
a.x2=min(max(a.x1,a.x2),max(b.x1,b.x2));
a.y2=min(max(a.y1,a.y2),max(b.y1,b.y2));
a.x1=max(min(a.x1,a.x2),min(b.x1,b.x2));
a.y1=max(min(a.y1,a.y2),min(b.y1,b.y2));
a.x2=min(max(a.x1,a.x2),max(c.x1,c.x2));
a.y2=min(max(a.y1,a.y2),max(c.y1,c.y2));
a.x1=max(min(a.x1,a.x2),min(c.x1,c.x2));
a.y1=max(min(a.y1,a.y2),min(c.y1,c.y2));
l1=max(a.x1,a.x2)-min(a.x1,a.x2);
l2=max(a.y1,a.y2)-min(a.y1,a.y2);
printf("%lld %lld\n",l1*l2,(l1+l2)*2);
return 0;
}