import sys
input = sys.stdin.readline

N, M = map(int, input().split())
VW = [tuple(map(int, input().split())) for _ in range(N)]
VW.sort(reverse=True)
dp = [[0]*(M+1) for _ in range(N+1)]
ans = 0

for i in range(N):
    V, W = VW[i]
    
    for j in range(M+1):
        dp[i+1][j] = max(dp[i+1][j], dp[i][j])
        
        if j+W<=M:
            dp[i+1][j+W] = max(dp[i+1][j+W], dp[i][j]+V)
            ans = max(ans, dp[i+1][j+W]*V)

print(ans)