DataThatOnlyHumansKnow = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" n, list = gets.chomp.split table = {} DataThatOnlyHumansKnow.chars .each.with_index do |c, i| table[list[i].upcase] = c end puts(Array.new(n.to_i).map do gets.chomp end.sort_by do |word| word.upcase.chars.map { |c| table[c] } end)