'''
N Q
s
t_1 d_1
\vdots
t_{Q} d_Q
'''
N, Q = map(int, input().split(' '))
s = input()
tile, dir = [], []
for _ in range(Q):
  pre, suff = input().split(' ')
  tile.append(pre)
  dir.append(suff)
  
def move(golem, i, d):
  if golem[i] == 0:  # No golem
    return golem
  elif golem[i] > 0:
    if d == 'L':
      if i > 0:
        golem[i-1], golem[i] = golem[i-1] + golem[i], 0
      elif i == 0:
        golem[i] = 0
    elif d == 'R':
      if i < N-1:
        golem[i], golem[i+1] = 0, golem[i] + golem[i+1]
      elif i == N-1:
        golem[i] = 0
  return golem
  
def move_R(golem, i):
  if golem[i] == 0:
    return golem
  if golem[i] > 0:
    golem[i] -= 1
  if i != N-1:
    golem[i+1] += 1
  return golem

def move_golem(golem, s, t, d):
  indexes = [i for i, x in enumerate(s) if x == t]
  for i in indexes:
    golem = move(golem, i, d)
  return golem
    
  
golem = [1]*N
for t, d in zip(tile, dir):
  golem = move_golem(golem, s, t, d)
print(sum(golem))