import sys input=lambda:sys.stdin.readline().rstrip() N,M=map(int,input().split()) jewel=[tuple(map(int,input().split())) for i in range(N)] jewel=sorted(jewel,key=lambda x:-x[0]) dp=[[-float('inf') for i in range(M+1)] for j in range(N+1)] dp[0][0]=0 ans=0 for i in range(1,N+1): V,W=jewel[i-1] for j in range(M+1): if j-W>=0 and dp[i-1][j-W]+V>dp[i-1][j]: dp[i][j]=dp[i-1][j-W]+V else: dp[i][j]=dp[i-1][j] ans=max(ans,V*max(dp[i])) print(ans)