program scoazze; 
(*algoritmo greedy: Pertanto, ogni giorno in cui riceviamo spazzatura, *)
(*se siamo costretti a svuotare il cestino attuale, lo faremo, altrimenti *)
(*aggiungendo alla dimensione del cestino la quantità di spazzatura raccolta *)
(*nel passaggio corrente.Al termine svuotiamo tutti i cassonetti. *)
(*Dobbiamo svuotare ciascun contenitore il più tardi possibile per ridurre al minimo*)
(*la spesa*)
const
    MAXN = 200000;

{ input data }
var
    N, K, i  : longint;
    costototale, D:int64;
    C,T,Q,bidone,price        : array[0..MAXN-1] of int64;

begin
{
    uncomment the following lines if you want to read/write from files
    assign(input,  'input.txt');  reset(input);
    assign(output, 'output.txt'); rewrite(output);
}

    { read numbers N and K in a single line }
    readln(N, K);
    { read all numbers C[i] in the next line }
    for i:=0 to N-1 do
              begin
               read(C[i]);
               bidone[i]:=0;
               price[i]:=0;
             end;  
    readln();
    costototale:=0;
    for i:=0 to K-1 do
                  begin
                    read(T[i],Q[i]); readln;
                    if C[T[i]]-(bidone[T[i]]+Q[i])>=0 then bidone[T[i]]:=bidone[T[i]]+Q[i]
                                                      else
                                                        begin
                                                          costototale:=costototale+(C[T[i]]-bidone[T[i]]);
                                                          bidone[T[i]]:=Q[i];
                                                        end;  
                                 
                  end; 
                                  
    for i:=0 to N-1 do costototale:=costototale+C[i]-bidone[i];
    writeln(costototale);
end.