#include <bits/stdc++.h>
using namespace std;
constexpr int MOD = 1000000007;
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
int N, Q;
string s;
char t[200010], d[200010];
int f(int si, int q) {
  if (q == 0) return 1;
  if (s[si] == t[q - 1]) return 0;
  if (si + 1 < N && t[q - 1] == s[si + 1] && d[q - 1] == 'L') {
    return f(si, q - 1) + f(si + 1, q - 1);
  }
  if (si - 1 >= 0 && t[q - 1] == s[si - 1] && d[q - 1] == 'R') {
    return f(si, q - 1) + f(si - 1, q - 1);
  }
  return f(si, q - 1);
}
void solve() {
  cin >> N >> Q >> s;
  int ans = N;
  for (int i = 0; i < Q; i++) {
    cin >> t[i] >> d[i];
    if (t[i] == s[0] && d[i] == 'L') ans -= f(0, i);
    if (t[i] == s[N - 1] && d[i] == 'R') ans -= f(N - 1, i);
  }
  cout << ans << '\n';
  return;
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  solve();
  return 0;
}
