n,m=map(int,input().split()) dp=[0]*(m+1) x=[list(map(int,input().split())) for i in range(n)] x.sort() for i,j in x: for l in range(m-i,-1,-1): if l*2+i<=m: dp[l*2+i]=max(dp[l*2+i],dp[l]+j) print(max(dp))