N, I = gets.split.map(&:to_i) dp = Array.new(I + 1, -1) dp[0] = 0 N.times do s, a = gets.split.map(&:to_i) (I - s).downto(0) do |i| next if dp[i] < 0 na = a + dp[i] ns = s + i dp[ns] = na if dp[ns] < na end end puts dp.max