#int(input()) #map(int, input().split()) #list(map(int, input().split())) N, I = map(int, input().split()) S = [0] * N for i in range(N): S[i] = list(map(int, input().split())) dp = [0] * (I+1) for i in range(N): ndp = [0] * (I+1) s, a = S[i] for j in range(I+1): ndp[j] = max(dp[j], ndp[j]) if j + s <= I: ndp[j+s] = max(dp[j] + a, ndp[j+s]) dp = list(ndp) # print(dp) ans = max(dp) print(dp[I])