# -*- coding: utf-8 -*-

# -*- coding: utf-8 -*-

# -*- coding: utf-8 -*-
from sys import stdin

###########################################
# delete here

############################################
#from sys import stdin
import numpy as np

# read data for n sequences.
d = stdin.readline().split()
N = int(d[0])
Q = int(d[1])
data = str(stdin.readline().split()[0])

q = []
for _ in range(Q):
    q.append(stdin.readline().split())

count=0
right=[]
left=[]
for i,d in enumerate(q):
    if d[1]=='R':
        right.append([d[0], i])
    else:
        left.append([d[0], i])
        
#for i in data:
# それは捨てられるか、または最後にすてられる順番も記録。
# 捨てられるタイミングが最後に前の数字が捨てられる順番が前だったら続ける。
last=Q+1
count=0
for i in data:
    token=0
    for elm in reversed(left):
        if elm[0] == i and last>elm[1]:
           count+=1
           last=elm[1]
           token=1
           continue
    if token==0:
        break
#print(count)
last=Q+1
    
for i in reversed(data):
    token=0
    for elm in reversed(right):
        if elm[0] == i and last>elm[1]:
           count+=1
           last=elm[1]
           token=1
           break
    if token==0:
        break    
print(N-count)
