def input_n
  gets.to_i               # 単一整数
end

def input_s
  gets.chomp              # 文字列。chompを付けないと改行文字がついてくる
end

def input_a
  gets.split.map(&:to_i)  # スペースで区切られた複数の整数
end

def input_o(num)
  num.times.map { gets.to_i }  # 縦に並んだ複数の整数。たまにある
end

def output_f(num)
  puts sprintf("%.12f", num)
end

n, m = input_a
a = n.times.map { gets.split.map(&:to_i) }
a.sort_by! { |a| a[0] }
sum = 0
cnt = 0
a.each do |aaa, bbb|
  if m < cnt + bbb
    sum += aaa * (m - cnt)
    break
  else
    sum += aaa * bbb
    cnt += bbb
  end
end
puts sum
