info=gets.chomp.split(" ").map(&:to_i)
ab=Array.new(info[0])
info[0].times do|i|
	ab[i]=gets.chomp.split(" ").map(&:to_i)
end
def mysort(_list,_n)
	for i in (0..(_n-2))
		indexmin=i
		for j in (i..(_n-1))
			if(_list[j][0]<_list[indexmin][0])
				indexmin=j
			end
		end
		w=_list[indexmin][0]
		_list[indexmin][0]=_list[i][0]
		_list[i][0]=w

		w=_list[indexmin][1]
		_list[indexmin][1]=_list[i][1]
		_list[i][1]=w
	end
	return _list
end
def mid(_num1,_num2,_num3)
	if(_num1<_num2)
		if(_num2<_num3)
			return _num2
		elsif(_num3<_num1)
			return _num1
		else
			return _num3
		end
	else
		if(_num1<_num3)
			return _num1
		elsif(_num1<_num2)
			return _num2
		else
			return _num3
		end
	end
end
def mysort2(_list,_beginnum,_endnum)
	if(_endnum-_beginnum<=1 || _beginnum>=_endnum)
		return _list
	end
	left=_beginnum
	right=_endnum
	mid_number=left+((right-left)/2)
	pivot=mid(_list[left][0],_list[mid_number][0],_list[right][0])
	while 1
		while(_list[left][0]<pivot)
			left+=1
		end
		while(_list[right][0]>pivot)
			right-=1
		end
		if(left>=right)
			break
		end
		w=_list[left]
		_list[left]=_list[right]
		_list[right]=w
		left+=1
		right-=1
	end
	_list=mysort2(_list,_beginnum,left)
	_list=mysort2(_list,right,_endnum)
	return _list
end
if(info[0]<10)
	ab=mysort(ab,info[0])
else
	ab=mysort2(ab,0,info[0]-1)
end
result=0
info[0].times do|i|
	if(info[1]-ab[i][1]<=0)
		result+=(info[1]*ab[i][0])
		break
	else
		info[1]-=ab[i][1]
		result+=(ab[i][0]*ab[i][1])
	end
end
p result