def solve(): N,I=map(int,input().split()) inf=float("inf") DP=[-inf]*(I+1); DP[0]=0 for _ in range(N): s,a=map(int,input().split()) for t in range(I,s-1,-1): DP[t]=max(DP[t], DP[t-s]+a) return max(DP) #================================================== print(solve())