from collections import defaultdict
N, M = map(int,input().rstrip().split())
d = defaultdict(lambda: 0)
for _ in range(N):
    A, B = map(int,input().rstrip().split())
    d[A] += B
ans=0
for k in sorted(d.keys()):
    if d[k]<=M:
        ans += k*d[k]
    else:
        ans += k*M
    M -= d[k]
    if M<=0:break
print(ans) from collections import defaultdict N, M = map(int,input().rstrip().split()) N map(int,input().rstrip().split()) map int input().rstrip().split() ().rstrip().split ().rstrip() ().rstrip () input rstrip split M d = defaultdict(lambda: 0) d defaultdict(lambda: 0) defaultdict lambda: 0 0 for _ in range(N):
    A, B = map(int,input().rstrip().split())
    d[A] += B _ range(N) range N A, B = map(int,input().rstrip().split()) A map(int,input().rstrip().split()) map int input().rstrip().split() ().rstrip().split ().rstrip() ().rstrip () input rstrip split B d[A] += B d[A] d A B ans=0 ans 0 for k in sorted(d.keys()):
    if d[k]<=M:
        ans += k*d[k]
    else:
        ans += k*M
    M -= d[k]
    if M<=0:break k sorted(d.keys()) sorted d.keys() d.keys d keys if d[k]<=M:
        ans += k*d[k]
    else:
        ans += k*M
     d[k]<=M d[k] d k M ans += k*d[k] ans k*d[k] k d[k] d k ans += k*M ans k*M k M M -= d[k] M d[k] d k if M<=0:b M<=0 M 0 print(ans) print ans B = map(int,input().rstrip().split()) map(int,input().rstrip().split()) B M = map(int,input().rstrip().split()) map(int,input().rstrip().split()) M A, B = map(int,input().rstrip().split()) map(int,input().rstrip().split()) A ans += k*d[k] k*d[k] ans ans=0 0 ans d = defaultdict(lambda: 0) defaultdict(lambda: 0) d M -= d[k] d[k] M N, M = map(int,input().rstrip().split()) map(int,input().rstrip().split()) N ans += k*M k*M ans
from collections import defaultdict
N, M = map(int,input().rstrip().split())
d = defaultdict(lambda: 0)
for _ in range(N):
    A, B = map(int,input().rstrip().split())
    d[A] += B
ans=0
for k in sorted(d.keys()):
    if d[k]<=M:
        ans += k*d[k]
    else:
        ans += k*M
    M -= d[k]
    if M<=0:break
print(ans)