#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
struct gds{
    string name;
    int a;
    int b;
};

int main(){
    int n,i,P,A,B,C,D,E,F,S,M;
    int a,b;
    string L;
    while(1){
        cin>>n;
        if(!n){break;}
        vector<gds> items(n);
        for(i=0;i<n;i++){
            cin>>L>>P>>A>>B>>C>>D>>E>>F>>S>>M;
            a=F*S*M-P;
            b=A+B+C+D+E+(D+E)*(M-1);
            struct gds buf={L,a,b};
            items[i]=buf;
        }
        sort(items.begin(),items.end(),[](const gds& a, const gds& b){return a.a*b.b==b.a*a.b ? a.name<b.name : a.a*b.b>b.a*a.b;});
     
        for(auto it=items.begin();it!=items.end();it++){
            cout<<it->name<<endl;
        }
        cout<<"#"<<endl;
    }
    return 0;
}

