#include<iostream>
#include<vector>
using namespace std;
 
int main(){
 
  int N,Q;
  string s;//s.size() == N
  char t_temp,d_temp;
  cin >> N >> Q >> s;
  string t,d;
  t.resize(Q+1);
  d.resize(Q+1);
  int Golem[200001]={};
  int GolemSum = N;
 
  for(int trial=0; trial<Q; trial++){
    cin >> t_temp >> d_temp;
    t[trial]=t_temp;
    d[trial]=d_temp;
    //cout<<"this is debug"<<t<<" "<<d<<endl;
 
    for(int posIndex=0; posIndex<N; posIndex++){
      if(trial == 0) Golem[posIndex] += 1;
      if(s[posIndex] != t[trial]) continue;
      if(Golem[posIndex] == 0) continue;
      else{
	if(d[trial] == 'L'){   
	  if(posIndex == 0){
	    GolemSum -= Golem[posIndex];
	    Golem[posIndex]=0;
	  }
	  else{
	    Golem[posIndex-1] += Golem[posIndex];
	    Golem[posIndex] = 0;
	  }
	}else if(d[trial] == 'R'){
	  if(posIndex == N-1){
	    GolemSum -= Golem[posIndex];
	    Golem[posIndex]=0;
	  }
	  else{
	    Golem[posIndex+1] += Golem[posIndex];
	    Golem[posIndex] = 0;
	  }
	}
      }
    }//end of posIndex loop
  }//end of trial loop
  cout << GolemSum << endl;
  return 0;
}
#include<iostream>
#include<vector>
using namespace std;

int main(){

  int N,Q;
  string s;//s.size() == N
  char t_temp,d_temp;
  cin >> N >> Q >> s;
  string t,d;
  t.resize(Q+1);
  d.resize(Q+1);
  int Golem[200001]={};
  int GolemSum = N;

  for(int trial=0; trial<Q; trial++){
    cin >> t_temp >> d_temp;
    t[trial]=t_temp;
    d[trial]=d_temp;
    //cout<<"this is debug"<<t<<" "<<d<<endl;

    for(int posIndex=0; posIndex<N; posIndex++){
      if(trial == 0) Golem[posIndex] += 1;
      if(s[posIndex] != t[trial]) continue;
      if(Golem[posIndex] == 0) continue;
      else{
	if(d[trial] == 'L'){   
	  if(posIndex == 0){
	    GolemSum -= Golem[posIndex];
	    Golem[posIndex]=0;
	  }
	  else{
	    Golem[posIndex-1] += Golem[posIndex];
	    Golem[posIndex] = 0;
	  }
	}else if(d[trial] == 'R'){
	  if(posIndex == N-1){
	    GolemSum -= Golem[posIndex];
	    Golem[posIndex]=0;
	  }
	  else{
	    Golem[posIndex+1] += Golem[posIndex];
	    Golem[posIndex] = 0;
	  }
	}
      }
    }//end of posIndex loop
  }//end of trial loop
  cout << GolemSum << endl;
  return 0;
}
