n, m =map(int,input().split())
A = list(map(int,input().split()))
BC = [tuple(map(int,input().split()))for i in range(m)]

A.sort()
# 書き換え得点がでかい順に並べる
BC.sort(key= lambda x : -x[1])

i = 0
f=0
for b, c in BC:
    for j in range(b):
      # 見てるとこがはみ出してないかつ、cより小さい
      if i+j<n and A[i+j]<c:
        A[i+j]=c
      else: # もう走査しても意味ないからぶれーく
        break
    i+=b
print(sum(A)) n, m =map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m A = list(map(int,input().split())) A list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split tuple(map(int,input().split()))for i in range(m) for i in range(m) i range(m) range m for i in range(m) tuple(map(int,input().split())) tuple map(int,input().split()) map int input().split() ().split () input split BC = [tuple(map(int,input().split()))for i in range(m)] BC [tuple(map(int,input().split()))for i in range(m)] A.sort() A.sort A sort BC.sort(key= lambda x : -x[1]) BC.sort BC sort key= lambda x : -x[1] key lambda x : -x[1] -x[1] x[1] x 1 x i = 0 i 0 f=0 f 0 for b, c in BC:
    for j in range(b):
      # 見てるとこがはみ出してないかつ、cより小さい
      if i+j<n and A[i+j]<c:
        A[i+j]=c
      else: # もう走査しても意味ないからぶれーく
        break
    i+=b b c BC for j in range(b):
      # 見てるとこがはみ出してないかつ、cより小さい
      if i+j<n and A[i+j]<c:
        A[i+j]=c
      else: # もう走査しても意味ないからぶれーく
        break
     j range(b) range b if i+j<n and A[i+j]<c:
        A[i+j]=c
      else: # もう走査しても意味ないからぶれーく
        break
     i+j<n and A[i+j]<c i+j<n i+j i j n A[i+j]<c A[i+j] A i+j i j c A[i+j]=c A[i+j] A i+j i j c break i+=b i b print(sum(A)) print sum(A) sum A i+=b b i m =map(int,input().split()) map(int,input().split()) m n, m =map(int,input().split()) map(int,input().split()) n BC = [tuple(map(int,input().split()))for i in range(m)] [tuple(map(int,input().split()))for i in range(m)] BC A = list(map(int,input().split())) list(map(int,input().split())) A f=0 0 f i = 0 0 i
n, m =map(int,input().split())
A = list(map(int,input().split()))
BC = [tuple(map(int,input().split()))for i in range(m)]

A.sort()
# 書き換え得点がでかい順に並べる
BC.sort(key= lambda x : -x[1])

i = 0
f=0
for b, c in BC:
    for j in range(b):
      # 見てるとこがはみ出してないかつ、cより小さい
      if i+j<n and A[i+j]<c:
        A[i+j]=c
      else: # もう走査しても意味ないからぶれーく
        break
    i+=b
print(sum(A))