#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, Q;
  cin >> N >> Q;
  string s;
  cin >> s;
  vector<string> t(Q);
  vector<string> d(Q);
  for (int i = 0; i < Q; i++) {
    cin >> t[i] >> d[i];
  }
  bool flag = true;
  int pos_l = -1;
  int pos_r = N;
  for (int i = N - 1; i >= 0 && flag == true; i--) {
    int pos = i;
    for (int j = 0; j < Q && flag == true; j++) {
      if (s[pos] == t[j][0]) {
        if (d[j] == "R") {
          pos++;
        }
        if (d[j] == "L") {
          pos--;
        }
      }
      if (pos >= N) break;
      if (pos < 0) {
        pos_l = i;
        flag = false;
      }
    }
  }
  flag = true;
  for (int i = 0; i < N && flag == true; i++) {
    int pos = i;
    for (int j = 0; j < Q && flag == true; j++) {
      if (s[pos] == t[j][0]) {
        if (d[j] == "R") {
          pos++;
        }
        if (d[j] == "L") {
          pos--;
        }
      }
      if (pos < 0) break;
      if (pos >= N) {
        pos_r = i;
        flag = false;
      }
    }
  }
  cout << pos_r - pos_l - 1 << endl;
  return 0;
}
