n,I = map(int,input().split())
sa = [list(map(int,input().split())) for i in range(n)]
INF = 10**18
dp = [[-INF]*(I+1) for i in range(n+1)]
dp [0][0] = 0
for i in range(1, n+1):
  s,a = sa[i-1]
  for j in range(I+1):
    dp[i][j] = dp[i-1][j]
    if j < s: continue
    dp[i][j] = max(dp[i][j], dp[i-1][j-s] + a)
print(max(dp[-1]))