https://www.acmicpc.net/problem/12865
시간 제한 : 2초
메모리 제한 : 512MB
n, k = map(int, input().split())
dp = [[0] * (k + 1) for _ in range(n + 1)]
for i in range(1, n + 1):
weight, value = map(int, input().split())
for j in range(1, k + 1):
if j < weight:
dp[i][j] = dp[i - 1][j]
else:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - weight] + value)
print(dp[n][k])