#!/usr/bin/python3

# Test python3, not affecting time limit.
import sys

dynamics = ['ppp', 'pp', 'p', 'mp', 'mf', 'f', 'ff', 'fff']

n, m = [int(v) for v in sys.stdin.readline().split(' ')]

p = [int(sys.stdin.readline()) for _ in range(n)]
d = [0] * n

for j in range(m):
  tokens = sys.stdin.readline().split(' ')
  cur_idx, di = int(tokens[0]), dynamics.index(tokens[1].rstrip())
  d[cur_idx - 1] = di + 1

cur_di = -1
ps = [[] for _ in range(8)]
for i in range(n):
  if d[i] > 0: cur_di = d[i] - 1
  ps[cur_di].append(p[i])

for i in range(8):
  ps[i].sort(reverse=True)

ans = 0
for _ in range(n):
  min_idx = -1
  for i in range(8):
    if len(ps[i]) == 0: continue
    if min_idx == -1 or ps[i][-1] <= ps[min_idx][-1]: min_idx = i
  for i in range(min_idx):
    ans += len(ps[i])
  ps[min_idx].pop(len(ps[min_idx]) - 1)

print (ans)
