def solve(n, m, vw): ans = 0 vw.sort(key = lambda x: x[0] / x[1], reverse = True) b = 0 va = 0 mn = 10 ** 18 for i in range(n): b += vw[i][1] if b >= m: break va += vw[i][0] mn = min(vw[i][0], mn) ans = max(ans, va * mn) return ans n, m = map(int,input().split()) vw = [list(map(int,input().split())) for _ in range(n)] print(solve(n, m, vw))