INF = 1 << 60 n, i = map(int, input().split()) dp = [- INF for _ in range(i + 1)] dp[0] = 0 for _ in range(n): s, a = map(int, input().split()) for j in range(i - s, -1, -1): if dp[j] >= 0: dp[j + s] = max(dp[j + s], dp[j] + a) print(max(dp))