n=gets.to_i l=gets.split.map &:to_i t=gets.to_i a=[] h={} hh=Hash.new(0) t.times do g=gets.split a<< g[0] gg=h[g[0]] if !gg gg=[0]*n end pi=g[1].ord-?A.ord hh[g[1]]+=1 gg[pi]=50*l[pi]+(50.0*l[pi]/(0.8+0.2*hh[g[1]])).floor h[g[0]]=gg end a.reverse! aa=[] h.each do |e,v| aa<< [e]+v+[v.inject(:+)] end aa.sort!{|c,b|a.index(b[0])<=>a.index(c[0])} aa.sort!{|c,b|b[-1]<=>c[-1]} 1.upto(aa.length) do |i| puts ([i]+aa[i-1]).*(" ") end