#ゴーレム判定函数
#pos=位置
#s=文字列
def survive(pos,s,spell,move,N):
    for i in range(0,len(spell)):
        if(s[pos]==spell[i]):
            pos+=move[i]
        #ゴーレムが消えたか判定
        if(pos<0 or pos>N):
            return False
    return True
    
N,Q=map(int,input().split())
s=str(input())
tmp1=""
tmp2=""
tmp=0
#AとかBとかそういう奴らがどのくらい動くのかをカウント
spell=[]
move=[]
for time in range(0,Q):
    tmp1,tmp2=map(str,input().split())
    spell.append(tmp1)
    if(tmp2=="L"):
        move.append(-1)
    elif(tmp2=="R"):
        move.append(1)
left=-1
right=-1
#上と下から探す
for i in range(0,N):
    if(survive(i,s,spell,move,N)):
        left=i
        break
for j in range(0,N):
    if(survive(N-1-j,s,spell,move,N)):
        right=N-1-j
        break
ans=0
if(left<0 and right<0):
    ans=0
else:
    ans=right-left+1
print(ans)