#include<stdio.h>
#include<string.h>

struct ichi{
  int m[200000];	/*マスの位置*/
  char s[200000];	/*文字列*/
  int k[200000];	/*ゴーレムの存在*/
};


int main(void){
  struct ichi o;
  
  int n,q;
  int i,j;
  char t[200000][1];
  char d[200000][1];
  char a[]="R";
  char b[]="L";
  scanf("%d %d",&n,&q);
  scanf("%s",o.s);
  for(i=0;i<q;i++){
    scanf("%s %s",t[i],d[i]);
  }

  for(i=0;i<q-1;i++){	/*初期位置の設定*/
    o.m[i]=i+1;
    o.k[i]=1;
  }
  
  for(i=0;i<q-1;i++){	/*呪文を実行*/
    if(d[i][0]=='R'){
      for(j=0;j<q-1;j++){
        if(t[i]==o.s[j]){
          o.m[i]++;
        }
        
        if(o.m[i]=q+1){
          o.k[i]=0;
        }
      }
    }
    if(d[i][0]=='L'){
      for(j=0;j<q-1;j++){
        if(t[i]==o.s[j]){
          o.m[i]=o.m[i]-1;         
        }
        
        if(o.m[i]=0){
          o.k[i]=0;
        }
        
      }
    }
  }
  int cout=0;
  
  for(i=0;i<q-1;i++){
    cout+=o.k[i];
  }
  printf("%d\n",cout);
  
  for(i=0;i<q-1;i++){
   //printf("%c %d %d\n",o.s[i],o.m[i],o.k[i]);
  }

  return 0; 
}