def calcs(x,y,ax,ay,bx,by) ((ax-x)*(by-y)-(bx-x)*(ay-y))/2.0 end
def inpf() a=gets.chomp.split(" ").map(&:to_f)end
def inps() a=gets.chomp.split(" ")end  
def copy(a) Marshal.load(Marshal.dump(a)) end
def kaizyo(n)(n < 2)? 1 : (2..n).inject(:*) end
def scount(a) b=na(a.max+1);a.each{|n|b[n]+=1};return b end
def na(n,d=0) Array.new(n,d)end
def na2(n,m,d=0) Array.new(n){Array.new(m,d)}end
def na3(n,m,l,d=0) Array.new(n){Array.new(m){Array.new(l,d)}}end
def bit(n) n.to_s(2).split("").map(&:to_i) end
def inp() a=gets.chomp.split(" ").map(&:to_i)end
def saiki(a,x,y)
  return if(x < 0)
  return if(y < 0)
  return if(y >= @h)
  return if(x >= @w)
  return if(a[y][x] == @bad)
  a[y][x] = @bad
  saiki(a,x+1,y)
  saiki(a,x,y+1)
  saiki(a,x-1,y)
  saiki(a,x,y-1)
  
  saiki(a,x+1,y+1)
  saiki(a,x-1,y+1)
  saiki(a,x-1,y-1)
  saiki(a,x+1,y-1)
end
while true
  n = inp[0]

  nt = []
  dr = []  
  break if n == 0
  n.times do |i|
    d = inps
    dn = d[0]
    dd = d[1..9].map(&:to_i)
     vi = dd[6]*dd[7]
    so = vi*dd[8]/(dd[1..5].inject(:+)+dd[4..5].inject(:+)*(dd[8]-1)).to_f - dd[0]/(dd[1..5].inject(:+)+dd[4..5].inject(:+)*(dd[8]-1)).to_f
    nt.push([dn,so])
  end
  nt.sort! do |a,b|
    (b[1]<=>a[1]).nonzero? ||
      (a[0] <=> b[0])
  end
  n.times do |i|
    puts nt[i][0]
  end
  puts "#"
end
=begin

=end