n, w = gets.chomp.split.map(&:to_i)
wvs = Array.new(n) { |i| gets.chomp.split.map(&:to_i) }
dp = Array.new(w + 1, 0)

0.upto(n - 1) do |i|
  w.downto(wvs[i][0]) do |j|
    tmp = dp[j - wvs[i][0]] + wvs[i][1]
    dp[j] = tmp if tmp > dp[j]
  end
end

puts dp[-1]
