n, m = gets.split.map(&:to_i)
dr = Array.new(n, nil)
n.times do |i|
  dr[i] = gets.split.map(&:to_i)
end
dr.sort! do |d1, d2|
  d1[0] <=> d2[0]
end
mm = 0
cost = 0
dr.each do |d|
  k = [m - mm, d[1]].min
  mm += k
  cost += d[0] * k
  break if mm == m
end
puts cost
