line = list(map(int, input().split()))
N, V = line[0], line[1]
v, w = [], []
for _ in range(N):
line = list(map(int, input().split()))
v.append(line[0])
w.append(line[1])
dp = [[0]*(V+1) for _ in range(N+1)]
for i in range(1, N+1):
for j in range(1, V+1):
dp[i][j] = dp[i-1][j]
if j >= v[i-1]:
dp[i][j] = max(dp[i][j], dp[i-1][j-v[i-1]] + w[i-1])
print(dp[-1][-1])