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(1, 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]))