from collections import deque
N,M=map(int,input().strip().split())
A=list(map(int,input().strip().split()))
BC=[list(map(int,input().strip().split())) for _ in range(M)]
A.sort()
A=deque(A)
BC.sort(key=lambda x:x[1],reverse=True)

ans=0
fin=False
for m in range(M):
    if fin==True:
        break
    i=0
    while i<BC[m][0]:
        if A:
            if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
        else:
            fin=True
            break
if fin==False and A:
    ans+=sum(A)
print(ans) from collections import deque N,M=map(int,input().strip().split()) N map(int,input().strip().split()) map int input().strip().split() ().strip().split ().strip() ().strip () input strip split M A=list(map(int,input().strip().split())) A list(map(int,input().strip().split())) list map(int,input().strip().split()) map int input().strip().split() ().strip().split ().strip() ().strip () input strip split list(map(int,input().strip().split())) for _ in range(M) for _ in range(M) _ range(M) range M for _ in range(M) list(map(int,input().strip().split())) list map(int,input().strip().split()) map int input().strip().split() ().strip().split ().strip() ().strip () input strip split BC=[list(map(int,input().strip().split())) for _ in range(M)] BC [list(map(int,input().strip().split())) for _ in range(M)] A.sort() A.sort A sort A=deque(A) A deque(A) deque A BC.sort(key=lambda x:x[1],reverse=True) BC.sort BC sort key=lambda x:x[1] key lambda x:x[1] x[1] x 1 x reverse=True reverse True ans=0 ans 0 fin=False fin False for m in range(M):
    if fin==True:
        break
    i=0
    while i<BC[m][0]:
        if A:
            if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
        else:
            fin=True
            break m range(M) range M if fin==True:
        break
     fin==True fin True break i=0 i 0 while i<BC[m][0]:
        if A:
            if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
        else:
            fin=True
            break i<BC[m][0] i BC[m][0] [m] BC m 0 if A:
            if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
        else:
            fin=True
            break A if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
         BC[m][1]>=A[0] BC[m][1] [m] BC m 1 A[0] A 0 ans+=BC[m][1] ans BC[m][1] [m] BC m 1 A.popleft() A.popleft A popleft i+=1 i 1 ans+=sum(A) ans sum(A) sum A fin=True fin True break fin=True fin True break if fin==False and A:
    ans+=sum(A) fin==False and A fin==False fin False A ans+=sum(A) ans sum(A) sum A print(ans) print ans BC=[list(map(int,input().strip().split())) for _ in range(M)] [list(map(int,input().strip().split())) for _ in range(M)] BC fin=False False fin A=list(map(int,input().strip().split())) list(map(int,input().strip().split())) A M=map(int,input().strip().split()) map(int,input().strip().split()) M i+=1 1 i N,M=map(int,input().strip().split()) map(int,input().strip().split()) N ans+=sum(A) sum(A) ans A=deque(A) deque(A) A i=0 0 i ans=0 0 ans fin=True True fin ans+=BC[m][1] BC[m][1] ans ans+=sum(A) sum(A) ans fin=True True fin
from collections import deque
N,M=map(int,input().strip().split())
A=list(map(int,input().strip().split()))
BC=[list(map(int,input().strip().split())) for _ in range(M)]
A.sort()
A=deque(A)
BC.sort(key=lambda x:x[1],reverse=True)

ans=0
fin=False
for m in range(M):
    if fin==True:
        break
    i=0
    while i<BC[m][0]:
        if A:
            if BC[m][1]>=A[0]:
                ans+=BC[m][1]
                A.popleft()
                i+=1
            else:
                ans+=sum(A)
                fin=True
                break
        else:
            fin=True
            break
if fin==False and A:
    ans+=sum(A)
print(ans)