n, m = map(int, input().split())
vw = [list(map(int, input().split())) for _ in range(n)]
vw.sort(key = lambda x:-x[0])

inf = 1 << 60
dp = [-inf] * (m + 1)
dp[0] = 0
ans = 0
for v, w in vw:
    for i in range(m, w - 1, -1):
        ans = max(ans, (dp[i - w] + v) * v)
        dp[i] = max(dp[i], dp[i - w] + v)
print(ans)