typedef struct f{char n[21];double x;}f;f O[50];c(const void *a,const void *b){f x=*(f*)a,y=*(f*)b;return x.x==y.x? strcmp(x.n,y.n):(x.x-y.x>0?-1:1);}main(N,i,j,P,A,B,C,D,E,F,S,M){for(;scanf("%d\n",&N),N;){for(i=0;i<N;O[i++].x=(F*S*M-P)/A+B+C+(D+E)*M)scanf("%s%d%d%d%d%d%d%d%d%d",O[i].n,&P,&A,&B,&C,&D,&E,&F,&S,&M);qsort(O,N,sizeof(f),c);for(i=0;i<N;puts(O[i++].n));puts("#");}return 0;}