#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序 计算几何 凸多边形面积 巧妙 背
struct nod{
double x;
double y;
}da[8];
double cross(nod a, nod b)
{
return a.x*b.y-a.y*b.x;
}
double area(int s,int e)//巧妙 背
{
double sum=0;
for(int i=s;i<e;i++)
{
sum+=cross(da[i],da[i+1])/2.0;
}
sum+=cross(da[e],da[s])/2.0;
if(sum<0)
{
sum=-sum;
}
return sum;
}
int main()
{
int tag=0;
while(1)
{
tag++;
int flag=0;
for(int i=0;i<8;i=i+2)
{
cin>>da[i].x>>da[i].y;
if(da[i].x!=0 || da[i].y!=0)
{
flag=1;
}
}
if(flag==0)
{
break;
}
for(int i=1;i<8;i=i+2)
{
da[i].x=(da[i-1].x+da[(i+1)%8].x)/2.0;//巧妙
da[i].y=(da[i-1].y+da[(i+1)%8].y)/2.0;
}
//for(int i=0;i<8;i++)
//{
// cout<<da[i].x<<" "<<da[i].y<<" ";
//}
//cout<<endl;
double sum=area(0,7);
//cout<<sum<<endl;
double S1,S2;
double jg=-1;
for(int i=0;i<8;i++)
{
for(int j=i+1;j<8;j++)
{
double t1=area(i,j);
double t2=sum-t1;
if(t1>t2)
{
swap(t1,t2);
}
//cout<<i<<" "<<j<<" = "<<t1<<endl;
if(jg==-1 || jg>(t2-t1))//抄博友程序
{
jg=t2-t1;
S1=t1;
S2=t2;
}
}
}
printf("Cake %d: %0.3f %0.3f\n",tag,S1,S2);
}
return 0;
}