N,M=gets.split.map(&:to_i)
as=gets.split.map(&:to_i)
ps=M.times.map{gets.split.map(&:to_i)}
as.sort!
for i in 0..M-1
    idx=as.bsearch_index{|e|ps[i][1]<e}
    idx=ps[i][0] if idx.nil?
    idx=ps[i][0] < idx ? ps[i][0] : idx
    as=as[idx..-1]
    inn=as.bsearch_index{|e|ps[i][1]<e}
    inn=as.size if inn.nil?
    if inn==0
        as=[ps[i][1]]*idx+as
    elsif inn==as.size
        as=as+[ps[i][1]]*idx
    else
        as=as[0..inn-1]+[ps[i][1]]*idx+as[inn..-1]
    end
end
p as.inject(:+)
