N,I = map(int,input().split()) inf = 10 ** 10 dp = [-inf] * (I + 1) dp[0] = 0 for _ in range(N): s,a = map(int,input().split()) for i in range(I,-1,-1): if i + s <= I: dp[i + s] = max(dp[i + s],dp[i] + a) print(max(dp))