package main import . "fmt" import . "slices" func main() { var n, i int Scan(&n,&i) dp := make([]int, i+1) for j := 0; j < n; j++ { var s,a int Scan(&s,&a) if s > i { continue } for k := i-s; k >= 0; k-- { if dp[k] > 0 { dp[k+s] = max(dp[k+s], dp[k]+a) } } dp[s] = max(dp[s], a) } Println(Max(dp)) }