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))