#yuki1858 n,m=map(int,input().split()) l=[] for i in range(n): l.append(list(map(int,input().split()))) l.sort(key=lambda x:x[0],reverse=True) res=0 dp=[0]*(m+1) for v,w in l: for i in range(m-w,-1,-1): dp[i+w]=max(dp[i+w],dp[i]+v) res=max(res,v*dp[m]) print(res)