from operator import itemgetter N,M=map(int,input().split()) A=[list(map(int,input().split())) for i in range(N)] A.sort(key=itemgetter(0),reverse=True) DP=[0]*(M+1) ANS=0 for v,w in A: for i in range(M,-1,-1): if i+w<=M: DP[i+w]=max(DP[i+w],DP[i]+v) ANS=max(ANS,max(DP)*v) print(ANS)