import sys
n, k = map(int, input().split())
dp = [[0] * (k + 1) for _ in range(n)]
max_v = 0
for i in range(n):
w, v = map(int, input().split())
for j in range(k + 1):
if j < w:
dp[i][j] = dp[i - 1][j]
else: # 이전에 현재 고려하는 물건의 부게만큼 뺴준것에서 현재 가치를 더한 것과 비교
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w] + v)
max_v = max(max_v, dp[i][j])
print(max_v)