import sys
N, K = map(int, input().split())
box = []
for _ in range(N):
box.append(list(map(int, sys.stdin.readline().split())))
dp = [0] * (K+1)
for w, v in box:
for i in range(K, w-1, -1):
dp[i] = max(dp[i], dp[i-w]+v)
print(max(dp))
본 문제는 다음의 과정을 따른다.