package net.ipipip0129.kotlin.yukicoder import kotlin.math.max fun main(args: Array) { val data = readLine()!!.split(" ") val count = data[0].toInt() val maxNum = data[1].toInt() val numList = ArrayList() for (i in (0 until count)) numList.add(readLine()!!.toInt()) var ans = 0 (0 until 1.shl(count)) .asSequence() .map { j -> (0 until count) .filter { j.shr(it) % 2 == 1 } .sumBy { numList[it] } } .filter { it <= maxNum } .forEach { ans = max(ans, it) } println(ans) }