N, Q = list(map(int, input().split()))

S = eval(input())

TX = [list(input().split()) for _ in range(Q)]

def checkl(i):

    for t, x in TX:

        if S[i] == t:

            i += 1 if x == 'R' else -1

        if i < 0:

            return False

        if i == N:

            i = N - 1

    return True

def checkr(i):

    for t, x in TX:

        if S[i] == t:

            i += 1 if x == 'R' else -1

        if i > N - 1:

            return False

        if i == -1:

            i = 0

    return True



ok = N

ng = -1

while abs(ok - ng) > 1:

    med = (ok + ng)//2

    if checkl(med):

        ok = med

    else:

        ng = med

L = ok

ok = -1

ng = N

while abs(ok - ng) > 1:

    med = (ok + ng)//2

    if checkr(med):

        ok = med

    else:

        ng = med

R = ok

print((max(0, R - L + 1)))

import sys

N, Q = list(map(int, input().split()))

s = eval(input())

TD = [sys.stdin.readline().split() for _ in range(Q)]



def checkl(k):

    np = k

    for t, d in TD:

        if s[np] == t:

            if d == 'L':

                np -= 1

            else:

                np += 1

        if np < 0:

            return False

        np = min(np, N-1)

    return True

def checkr(k):

    np = k

    for t, d in TD:

        if s[np] == t:

            if d == 'L':

                np -= 1

            else:

                np += 1

        if np > N-1:

            return False

        np = max(np, 0)

    return True



ok = N

ng = -1

while abs(ok - ng) > 1:

    med = (ok + ng)//2

    if checkl(med):

        ok = med

    else:

        ng = med



L = ok



ok = -1

ng = N

while abs(ok - ng) > 1:

    med = (ok + ng)//2

    if checkr(med):

        ok = med

    else:

        ng = med



R = ok

print((R - L + 1))
N, Q = list(map(int, input().split()))
S = eval(input())
TX = [list(input().split()) for _ in range(Q)]


def checkl(i):
    for t, x in TX:
        if S[i] == t:
            i += 1 if x == "R" else -1
        if i < 0:
            return False
        if i == N:
            i = N - 1
    return True


def checkr(i):
    for t, x in TX:
        if S[i] == t:
            i += 1 if x == "R" else -1
        if i > N - 1:
            return False
        if i == -1:
            i = 0
    return True


ok = N
ng = -1
while abs(ok - ng) > 1:
    med = (ok + ng) // 2
    if checkl(med):
        ok = med
    else:
        ng = med
L = ok
ok = -1
ng = N
while abs(ok - ng) > 1:
    med = (ok + ng) // 2
    if checkr(med):
        ok = med
    else:
        ng = med
R = ok
print((max(0, R - L + 1)))

import sys

N, Q = list(map(int, input().split()))
s = eval(input())
TD = [sys.stdin.readline().split() for _ in range(Q)]


def checkl(k):
    np = k
    for t, d in TD:
        if s[np] == t:
            if d == "L":
                np -= 1
            else:
                np += 1
        if np < 0:
            return False
        np = min(np, N - 1)
    return True


def checkr(k):
    np = k
    for t, d in TD:
        if s[np] == t:
            if d == "L":
                np -= 1
            else:
                np += 1
        if np > N - 1:
            return False
        np = max(np, 0)
    return True


ok = N
ng = -1
while abs(ok - ng) > 1:
    med = (ok + ng) // 2
    if checkl(med):
        ok = med
    else:
        ng = med
L = ok
ok = -1
ng = N
while abs(ok - ng) > 1:
    med = (ok + ng) // 2
    if checkr(med):
        ok = med
    else:
        ng = med
R = ok
print((R - L + 1))

+import sys + -S = eval(input()) -TX = [list(input().split()) for _ in range(Q)] +s = eval(input()) +TD = [sys.stdin.readline().split() for _ in range(Q)] -def checkl(i): -    for t, x in TX: -        if S[i] == t: -            i += 1 if x == "R" else -1 -        if i < 0: +def checkl(k): +    np = k +    for t, d in TD: +        if s[np] == t: +            if d == "L": +                np -= 1 +            else: +                np += 1 +        if np < 0: -        if i == N: -            i = N - 1 +        np = min(np, N - 1) -def checkr(i): -    for t, x in TX: -        if S[i] == t: -            i += 1 if x == "R" else -1 -        if i > N - 1: +def checkr(k): +    np = k +    for t, d in TD: +        if s[np] == t: +            if d == "L": +                np -= 1 +            else: +                np += 1 +        if np > N - 1: -        if i == -1: -            i = 0 +        np = max(np, 0) -print((max(0, R - L + 1))) +print((R - L + 1))