class BlockNumbers attr_reader :l, :n, :w def initialize(l: 0, n: 0, w: []) @l, @n, @w = l, n, w end def datainput begin @l = Integer(gets.chomp) @n = Integer(gets.chomp) @w = gets.chomp.split.map { |v| Integer(v) } rescue end end def how_many_blocks(box_width, width_blocks) width_blocks = width_blocks.sort sum, cnt = 0, 0 width_blocks.each do |width| sum += width if box_width < sum return cnt elsif box_width == sum cnt += 1 return cnt else cnt += 1 end end return cnt end def dataoutput puts how_many_blocks(@l, @w) end def run datainput dataoutput end end if $0 == __FILE__ BlockNumbers.new.run end