#include <bits/stdc++.h>
int max(int A, int B) { return A > B ? A : B; }
int min(int A, int B) { return A < B ? A : B; }
int utoi(char C) { return C - 'A'; }
int main(void) {
  int n, q, ans = 0;
  scanf("%d%d", &n, &q);
  int g[n];
  for (int i = 0; i < n; i++) {
    g[i] = 1;
  }
  char s[200020];
  scanf("%s\n", s);
  for (int i = 0; i < q; i++) {
    char t, d;
    scanf("%c %c\n", &t, &d);
    if (d == 'L') {
      for (int j = 0; j < n; j++) {
        if (s[j] == t) {
          if (j != 0) {
            g[j - 1] += g[j];
          }
          g[j] = 0;
        }
      }
    } else {
      for (int j = n - 1; j >= 0; j--) {
        if (s[j] == t) {
          if (j != n - 1) {
            g[j + 1] += g[j];
          }
          g[j] = 0;
        }
      }
    }
  }
  for (int i = 0; i < n; i++) {
    ans += g[i];
  }
  printf("%d\n", ans);
  return 0;
}
