n, m = gets.split.map(&:to_i)
a = gets.split.map(&:to_i).sort
b = []
m.times do
  g = gets.split.map(&:to_i)
  b << g
end
i=0
b.sort_by! { |_k, v| -v }.each do |k, v|
  j = 0
  while (j < k) && (i < a.size) && (a[i] < v)
    a[i] = v
    i += 1
    j += 1
  end
  break if i >= a.size
end
p a.inject(:+)