#include <bits/stdc++.h>
const long INF = 1123456789012345678l;
const long MOD = 1000000007l;
long n, q;
std::string s;
char t[200005], d[200005];
long ans;
bool range_check(long i) {
  if (i < 0 || i >= n) {
    return false;
  }
  return true;
}
long how_many(long pos, long tm) {
  if (tm == 0) {
    return 1;
  }
  long ret = 0;
  if (t[tm] != s[pos]) {
    ret += how_many(pos, tm - 1);
  }
  if (range_check(pos - 1) && t[tm] == s[pos - 1] && d[tm] == 'R') {
    ret += how_many(pos - 1, tm - 1);
  }
  if (range_check(pos + 1) && t[tm] == s[pos + 1] && d[tm] == 'L') {
    ret += how_many(pos + 1, tm - 1);
  }
  return ret;
}
int main() {
  scanf("%ld %ld", &n, &q);
  std::cin >> s;
  for (int i = 1; i <= q; i++) {
    scanf("\n%c %c", &t[i], &d[i]);
  }
  for (int i = 1; i <= q; i++) {
    if (t[i] == s[0] && d[i] == 'L') {
      ans += how_many(0, i - 1);
    } else if (t[i] == s[n - 1] && d[i] == 'R') {
      ans += how_many(n - 1, i - 1);
    }
  }
  printf("%ld\n", n - ans);
}
