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)