using System;
using System.Collections.Generic;
using System.Linq;

namespace EXA2019C
{
    class MainClass
    {

        static int[] nq;
        static string s;

        public static void Main(string[] args)
        {
            nq = Array.ConvertAll(Console.ReadLine().Split().ToArray(), int.Parse);
            s = Console.ReadLine();

            var sidx = new Dictionary<char, List<int>>();
            for (int i = 0; i < nq[0]; i++)
            {
                if (sidx.ContainsKey(s[i]))
                {
                    sidx[s[i]].Add(i+1);
                }
                else
                {
                    sidx.Add(s[i], new List<int> { i + 1 });
                }
            }

            int[] cntlst = Enumerable.Repeat<int>(1, nq[0]+2).ToArray();
            cntlst[0] = 0;
            cntlst[nq[0] + 1] = 0;
            for(int i = 0; i < nq[1]; i++)
            {
                string[] q = Console.ReadLine().Split().ToArray();
               // if (sidx.ContainsKey(q[0][0]))
               // {
                    if (q[1][0] == 'L')
                    {
                        foreach (int idx in sidx[q[0][0]])
                        {
                            cntlst[idx - 1] += cntlst[idx];
                            cntlst[idx] = 0;
                        }
                    }
                    else
                    {
                        foreach (int idx in sidx[q[0][0]])
                        {
                            cntlst[idx + 1] += cntlst[idx];
                            cntlst[idx] = 0;
                        }
                    }

             //   }



            }

            Console.WriteLine(nq[0] - cntlst[0] - cntlst[nq[0] + 1]);
        }
    }
}
