h = Hash.new 0 gets [*$<].each_slice(3){|n, ms, tags| m, s = ms.split.map &:to_i tags.split.map{|tag| h[tag] += s } } puts h.sort_by{|k,v|[-v, k]}.take(10).map{|kv|kv*" "}