N,M = gets.split(" ").map{|e| e.to_i}
a_array = gets.split(" ").map{|e| e.to_i}

a_array.sort!
b_array = [[0,0]]
min = a_array.first
M.times do
  tmp = gets.split(" ").map{|e|e.to_i}
  b_array << tmp if tmp[1] > min
end
b_array.sort_by!{|a,b| b <=> a }
ans_array = []

b_max = b_array.max_by{|item| item[1] }[1]
a_array.reverse.each do|item|
  ans_array <<  a_array.pop if item > b_max
end

b_array.each do |item_b|
  count = item_b[0]
  a_array.size.times do |i|
    if a_array[i] >= item_b[1]
      break
    end
    a_array[i] = item_b[1]
    count -=1
    break if count == 0
  end
  a_array.sort!
end
ans_array += a_array
puts ans_array.sum
