#include <bits/stdc++.h>
static const int MAX = 200000;
typedef struct _Golem {
  int index;
  char site;
} Golem;
int main() {
  int N, Q;
  char s[MAX];
  char t[MAX];
  char d[MAX];
  scanf("%d %d", &N, &Q);
  scanf("%s", s);
  for (int nn = 0; nn < Q; ++nn) {
    std::cin >> t[nn] >> d[nn];
  }
  Golem golem[MAX];
  for (int i = 0; i < N; ++i) {
    golem[i].index = i;
    golem[i].site = s[i];
  }
  int ans = N;
  for (int i = 0; i < Q; ++i) {
    for (int j = 0; j < N; ++j) {
      if (golem[j].site == t[i]) {
        if (d[i] == 'L') {
          if (golem[j].index == 0) {
            --ans;
            golem[j].site = '0';
            continue;
          } else {
            golem[j].index -= 1;
            golem[j].site = s[golem[j].index];
          }
        } else {
          if (golem[j].index == N - 1) {
            --ans;
            golem[j].site = '0';
            continue;
          } else {
            golem[j].index += 1;
            golem[j].site = s[golem[j].index];
          }
        }
      }
    }
  }
  printf("%d\n", ans);
  return 0;
}
