#include <bits/stdc++.h>
struct point {
  char t;
  char d;
};
int main() {
  int i, n, q, sum;
  scanf("%d %d", &n, &q);
  char s[20000];
  int c[20000];
  struct point data[20000];
  for (i = 0; i < n; i++) scanf("%s", &s[i]);
  for (i = 0; i < q; i++) scanf("%s %s", &data[i].t, &data[i].d);
  for (i = 0; i < n; i++) c[i] = 1;
  for (i = 0; i < n; i++) {
    if ((data[i].t == s[i]) && (data[i].d == 'L') && (i != 0)) {
      c[i - 1] = c[i] + c[i - 1];
      c[i] = 0;
    } else if ((data[i].t == s[i]) && (data[i].d == 'L') && (i == 0)) {
      c[i] = 0;
    } else if ((data[i].t == s[i]) && (data[i].d == 'R') && (i != n - 1)) {
      c[i + 1] = c[i] + c[i + 1];
      c[i] = 0;
    } else if ((data[i].t == s[i]) && (data[i].d == 'R') && (i == n - 1)) {
      c[i] = 0;
    }
  }
  sum = 0;
  for (i = 0; i < n; i++) {
    sum = sum + c[i];
  }
  printf("%d", sum);
}
