n, m = gets.split.map(&:to_i)
card = gets.split.map(&:to_i)

op    = []

m.times do
  tmp = gets.split.map(&:to_i)
  op << tmp
end

op   = op.sort_by{|ary| ary[1]}.reverse
card = card.sort
cnt  = 0
ans  = 0

while card.size > 0 && op.size > 0
  if card[0] < op[0][1]
    op[0][0] -= 1
    ans += op[0][1]
    if op[0][0] == 0
      op.shift
    end
    card.shift
  else
    ans += card.shift
  end
end

if card.size > 0
  ans += card.inject(:+)
end

puts ans
