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)