import sys
input = sys.stdin.readline

N, Q = map(int, input().split())
s = input()
td = [input().split() for _ in range(Q)]

l_min, r_min, l_max, r_max = 0, min(Q, N), max(0, N - Q), N
while l_min < r_min and l_max < r_max:
    m_min = l_min + (r_min - l_min) // 2
    m_max = l_max + (r_max - l_max + 1) // 2
    # print("# min", (l, r), m)
    # print("# max", (l, r), m)
    tmp_min, tmp_max = m_min, m_max
    flag = 0
    for i, (ti, di) in enumerate(td):
        if tmp_min < 0 or N <= tmp_min:
            flag &= 0b01
        elif s[tmp_min] == ti:
            tmp_min += (1 if di == 'R' else -1)
        #
        if tmp_max < 0 or N <= tmp_max:
            flag &= 0b10
        elif s[tmp_max] == ti:
            tmp_max += (1 if di == 'R' else -1)
        #
        if flag == 0b11: break
    #
    if tmp_min < 0: l_min = m_min + 1
    else: r_min = m_min
    #
    if N <= tmp_max: r_max = m_max - 1
    else: l_max = m_max

print(l_max - l_min + 1)