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