const
maxn=10000;
var
a,l:array[1..maxn]of longint;
n,m,i,j,p,q,min,len:longint;
procedure qsort(p,r:longint);
var i,j,x:longint;
begin
if p<r then begin
x:=l[p+random(r-p+1)];
i:=p-1; j:=r+1;
while true do begin
repeat dec(j); until l[j]<=x;
repeat inc(i); until l>=x;
if i<j then
begin
q:=l;l:=l[j];l[j]:=q;
q:=a;a:=a[j];a[j]:=q;
end
else break;
end;
qsort(p,j);
qsort(j+1,r);
end;
end;
begin
randomize;
{assign(input,'a.in');reset(input); }
while not(eof) do begin
readln(n,m);
fillchar(a,sizeof(a),0);
for i:=1 to n do read(l);
for i:=1 to m do begin read(p,q);
inc(a[p]);dec(a[q]);
end;
qsort(1,n);
min:=1; len:=0;
for i:=1 to n do
if a>0 then
for j:=min to n do
if a[j]+a<=0 then begin
len:=len+abs((l[j]-l)*a);
a[j]:=a+a[j];min:=j;a:=0;break;end
else if a[j]<0 then begin
len:=len+abs((l[j]-l)*a[j]);
a:=a+a[j];a[j]:=0;
end;
writeln(len);
readln;
end;
end.