#include<bits/stdc++.h>
using namespace std;

struct point{
    double x,y;
    int v,l;
    point(){x=y=0.0,v=l=0.0;}
    point(double _x,double _y,int _v,int _l):x(_x),y(_y),v(_v),l(_l){}
};
bool comp(point a,point b){
        return a.x<b.x||(a.x==b.x&&a.y<b.y);
}
double cross(point a,point b,point c){
    return (b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x);
}
vector<point>CH(vector<point>p){
    int n=p.size(),k=0;
    vector<point>H(2*n+1);
    sort(p.begin(),p.end(),comp);
    for(int i=0;i<n;i++){
        while(k>=2&&cross(H[k-2],H[k-1],p[i])<=0)k--;
        H[k++]=p[i];
    }
    for(int i=n-2,t=k+1;i>=0;i--){
        while(k>=t&&cross(H[k-2],H[k-1],p[i])<=0)k--;
        H[k++]=p[i];
    }
    H.resize(k-1);
    return H;
}
double dist(point p1,point p2){
    return hypot(p1.x-p2.x,p1.y-p2.y);
}
double perPolygon(const vector<point>&p){
    double res=0.0,x1,y1,x2,y2;
    for(int i=0;i<(int)p.size()-1;i++){
        res+=dist(p[i],p[i+1]);
    }
    res+=dist(p[p.size()-1],p[0]);
    return fabs(res);
}

int main(){
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int n,i,j,cases=0;
    double x,y,v,l,ans,c,s,len,val;
    while(scanf("%d",&n)==1&&n){
        if(cases)printf("\n");
        vector<point>t,p;
        for(i=0;i<n;i++){
            cin>>x>>y>>v>>l;
            p.push_back(point(x,y,v,l));
        }
        int an=1e9,st,cnt;
        for(i=1;i<(1<<n);i++){
            t.clear();
            val=0,len=0;
            for(j=0;j<n;j++){
                if(i&(1<<j)){
                    val+=p[j].v;
                    len+=p[j].l;
                }
                else t.push_back(p[j]);
            }
            if(val>an||(val==an&&(n-t.size())>=cnt))continue;
            t=CH(t);
            ans=perPolygon(t);
            if(len>=ans){
                an=val;
                cnt=n-t.size();
                s=i;
                c=len-ans;
            }
        }
        int a=s;
        printf("Forest %d\n",++cases);
        printf("Cut these trees:");
        for(j=0;j<n;j++){
            if(a&(1<<j))printf(" %d",j+1);
        }
        printf("\nExtra wood: %.2lf\n",c);
    }
    return 0;
}
