# frozen_string_literal: true MEMBERS = gets.to_i.times.map { gets.chomp.split.map(&:to_i) } FOODS = gets.to_i.times.map { gets.chomp.split.map(&:to_i) } FOODS_WITH_NUM = MEMBERS.map do |value, hot| FOODS.map.with_index do |food, index| index if food[0] <= value && food[1] >= hot end end.flatten.compact.sort.group_by(&:itself).map { |i, j| [i, j.size] } MAXS = FOODS_WITH_NUM.filter do |_, j| j == (FOODS_WITH_NUM.max_by { |_, k| k } || [nil, 0])[1] end if MAXS.empty? puts 0 exit end puts(MAXS.map { |k, _v| k + 1 } .uniq .sort .join("\n"))