import java.io.PrintWriter import scala.collection.mutable.* import scala.io.StdIn.* import scala.util.chaining.* import scala.math.* import scala.reflect.ClassTag import scala.util.* import scala.annotation.tailrec import scala.collection.mutable @main def main() = val Array(n, m) = readLine().split(' ').map(_.toInt) val jewels = Array.fill(n){ val Array(v, w) = readLine().split(' ').map(_.toInt) v -> w } val memo = Array.fill(m + 1){0L} var result = 0L for (v, w) <- jewels.sortBy(_._1)(Ordering[Int].reverse) do for i <- m to w by -1 do memo(i) = max(memo(i), memo(i - w) + v) result = max(result, v * memo.last) println(result)