n,q=map(int,input().split())
s=list(input())
dp=[1 for i in range(n)]
lis=[list(input().split()) for _ in range(q)]
#ここでdpのうちのどこでゴーレムが落ちるか落ちないかを二分探索で求める。
cnt=0
left=0
right=n-1
while(left!=right): #まずはゴーレムが左に落ちる最右点を求める。
    dp=[0]*n
    mid=(left+right)//2
    dp[mid]=1
    tmp=mid  #tmpはq回の操作でどこにゴーレムがいるのかを記憶している
    for i in range(q):
        if lis[i][0]==s[tmp]:
            if lis[i][1]=="L":
                if tmp!=0:
                    dp[tmp-1]=1
                    dp[tmp]=0
                    tmp-=1
                else: #ここでmidにいたゴーレムが左に落ちたとわかるので、
                    left=mid+1
                    break
            else:
                if tmp!=n-1:
                    dp[tmp+1]=1
                    dp[tmp]=0
                    tmp+=1
                else:
                    right=mid-1
                    break
    else:
        right=mid
    if right<left:
        left=right
if right==left:
    tmp=left
    dp=[0]*n
    dp[tmp]=1
    for i in range(q):
        if lis[i][0]==s[tmp]:
                if lis[i][1]=="L":
                    if tmp!=0:
                        dp[tmp-1]=1
                        dp[tmp]=0
                    else:
                        cnt+=(left+1)
                        break
                else:
                    if tmp!=n-1:
                        dp[tmp+1]=1
                        dp[tmp]=0
    else:
        cnt+=left

#次に右側に落ちるゴーレムを求める
left=0
right=n-1
while(left!=right): #まずはゴーレムが右に落ちる最左点を求める。
    dp=[0]*n
    mid=(left+right+1)//2
    dp[mid]=1
    tmp=mid  #tmpはq回の操作でどこにゴーレムがいるのかを記憶している
    for i in range(q):
        if lis[i][0]==s[tmp]:
            if lis[i][1]=="L":
                if tmp!=0:
                    dp[tmp-1]=1
                    dp[tmp]=0
                    tmp-=1
                else: #ここでmidにいたゴーレムが左に落ちたとわかるので、
                    left=mid+1
                    break
            else:
                if tmp!=n-1:
                    dp[tmp+1]=1
                    dp[tmp]=0
                    tmp+=1
                else:
                    right=mid-1
                    break
    else:
        left=mid
    if right<left:
        right=left

if right==left:
    tmp=left
    dp=[0]*n
    dp[tmp]=1
    for i in range(q):
        if lis[i][0]==s[tmp]:
                if lis[i][1]=="L":
                    if tmp!=0:
                        dp[tmp-1]=1
                        dp[tmp]=0
                else:
                    if tmp!=n-1:
                        dp[tmp+1]=1
                        dp[tmp]=0
                    else:
                        cnt+=(n-left)
    else:
        cnt+=(n-left-1)

print(n-cnt)