#!/usr/bin/env python
from __future__ import division, print_function

import io
import os
import sys
from collections import defaultdict

if sys.version_info[0] < 3:
    from __builtin__ import xrange as range
    from cStringIO import StringIO
    from future_builtins import ascii, filter, hex, map, oct, zip
else:
    from io import BytesIO as StringIO

sys.stdout, stream = io.IOBase(), StringIO()
sys.stdout.flush = lambda: os.write(1, stream.getvalue()) and not stream.truncate(0) and stream.seek(0)
sys.stdout.write = stream.write if sys.version_info[0] < 3 else lambda s: stream.write(s.encode())

input, flush = sys.stdin.readline, sys.stdout.flush
input = StringIO(os.read(0, os.fstat(0).st_size)).readline


def main():
    n, q = map(int, input().split())
    s = input()

    m = defaultdict(list)
    c = [1] * n

    for i, j in enumerate(s):
        m[j].append(i)

    for _ in range(q):
        t, d = input().split()
        for i in m[t]:
            j = i + {'R': 1, 'L': -1}[d]
            if (j != -1) and (j != n):
                c[j] += c[i]
            c[i] = 0

    print(sum(c))



if __name__ == '__main__':
    main()
