#入力:N,M(int:整数)
def input2():
	return map(int,input().split())

#入力:[n1,n2,...nk](int:整数配列)
def input_array():
	return list(map(int,input().split()))
  

n,m=input2()
AB=[input_array() for _ in range(n)]

AB=sorted(AB,key=lambda x:x[0])
ans=0

for i in range(n):
	a= AB[i][0]
	b= AB[i][1]
	if b>m:
		ans+=a*m
		break
	elif b==m:
		ans+=a*b
		break
	else:
		ans+=a*b
	m-=b
print(ans) def input2():
	return map(int,input().split())

#入力:[n1,n2,...nk](int:整数配列) input2 return map(int,input().split()) map(int,input().split()) map int input().split() ().split () input split def input_array():
	return list(map(int,input().split()))
   input_array return list(map(int,input().split())) list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split n,m=input2() n input2() input2 m input_array() for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) input_array() input_array AB=[input_array() for _ in range(n)] AB [input_array() for _ in range(n)] AB=sorted(AB,key=lambda x:x[0]) AB sorted(AB,key=lambda x:x[0]) sorted AB key=lambda x:x[0] key lambda x:x[0] x[0] x 0 x ans=0 ans 0 for i in range(n):
	a= AB[i][0]
	b= AB[i][1]
	if b>m:
		ans+=a*m
		break
	elif b==m:
		ans+=a*b
		break
	else:
		ans+=a*b
	m-=b i range(n) range n a= AB[i][0] a AB[i][0] [i] AB i 0 b= AB[i][1] b AB[i][1] [i] AB i 1 if b>m:
		ans+=a*m
		break
	elif b==m:
		ans+=a*b
		break
	else:
		ans+=a*b
	 b>m b m ans+=a*m ans a*m a m break elif b==m:
		ans+=a*b
		break
	 b==m b m ans+=a*b ans a*b a b break ans+=a*b ans a*b a b m-=b m b print(ans) print ans a= AB[i][0] AB[i][0] a def input_array():
	return list(map(int,input().split()))
   def input_array():
	return list(map(int,input().split()))
   input_array n,m=input2() input2() n AB=sorted(AB,key=lambda x:x[0]) sorted(AB,key=lambda x:x[0]) AB def input2():
	return map(int,input().split())

#入力:[n1,n2,...nk](int:整数配列) def input2():
	return map(int,input().split())

#入力:[n1,n2,...nk](int:整数配列) input2 b= AB[i][1] AB[i][1] b ans+=a*b a*b ans m-=b b m AB=[input_array() for _ in range(n)] [input_array() for _ in range(n)] AB ans=0 0 ans ans+=a*m a*m ans ans+=a*b a*b ans m=input2() input2() m
#入力:N,M(int:整数)
def input2():
	return map(int,input().split())

#入力:[n1,n2,...nk](int:整数配列)
def input_array():
	return list(map(int,input().split()))
  

n,m=input2()
AB=[input_array() for _ in range(n)]

AB=sorted(AB,key=lambda x:x[0])
ans=0

for i in range(n):
	a= AB[i][0]
	b= AB[i][1]
	if b>m:
		ans+=a*m
		break
	elif b==m:
		ans+=a*b
		break
	else:
		ans+=a*b
	m-=b
print(ans)