#include <bits/stdc++.h>
using namespace std;
int N, Q;
string s;
vector<char> t, d;
int dfs(int n, int i) {
  if (i < 0) return 1;
  int ans = 0;
  if (s[n] != t[i]) {
    ans += dfs(n, i - 1);
  }
  if (n > 0 && s[n - 1] == t[i] && d[i] == 'R') {
    ans += dfs(n - 1, i - 1);
  }
  if (n < N - 1 && s[n + 1] == t[i] && d[i] == 'L') {
    ans += dfs(n + 1, i - 1);
  }
  return ans;
}
int main() {
  cin >> N >> Q;
  cin >> s;
  t.resize(Q);
  d.resize(Q);
  for (int i = 0; i < Q; ++i) cin >> t[i] >> d[i];
  int ans = N;
  for (int i = Q - 1; i >= 0; --i) {
    if (t[i] == s[N - 1] && d[i] == 'R') {
      ans -= dfs(N - 1, i - 1);
    } else if (t[i] == s[0] && d[i] == 'L') {
      ans -= dfs(0, i - 1);
    }
  }
  cout << ans << endl;
}
