n,m=map(int,input().split())
item=[list(map(int,input().split())) for _ in range(n)]
item.sort(reverse=True)
dp=[[0]*(1+m) for _ in range(n+1)]
ans=0
for i in range(n):
    v,w=item[i]
    for j in range(m+1):
        dp[i+1][j]=max(dp[i+1][j],dp[i][j])
        if j+w<=m:
            if dp[i+1][j+w]<dp[i][j]+v:
                dp[i+1][j+w]=dp[i][j]+v
                ans=max(ans,v*dp[i+1][j+w])
print(ans)