#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 7;
int n, q, typ, tim, no, no2;
string s;
char t[N], d[N];
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> q;
  cin >> s;
  for (int i = 1; i <= q; i++) cin >> t[i] >> d[i];
  tim = q;
  no = 0;
  while ((tim > 0) && ((t[tim] != s[no]) || (d[tim] != 'L'))) tim--;
  if (tim > 0) {
    typ = 0;
    tim--;
    no++;
    while ((tim > 0) && (no < n)) {
      if ((t[tim] == s[no - 1]) && (d[tim] == 'R')) {
        tim--;
        typ = 1;
        continue;
      }
      if (typ == 1) {
        if ((t[tim] == s[no - 1]) && (d[tim] == 'L')) {
          tim--;
          typ = 0;
          continue;
        }
      } else {
        if ((t[tim] == s[no]) && (d[tim] == 'L')) {
          no++;
          tim--;
          break;
        }
      }
    }
  }
  no2 = no;
  tim = q;
  no = n - 1;
  while ((tim > 0) && ((t[tim] != s[no]) || (d[tim] != 'R'))) tim--;
  if (tim > 0) {
    typ = 0;
    tim--;
    no--;
    while ((tim > 0) && (no >= 0)) {
      if ((t[tim] == s[no + 1]) && (d[tim] == 'L')) {
        tim--;
        typ = 1;
        continue;
      }
      if (typ == 1) {
        if ((t[tim] == s[no + 1]) && (d[tim] == 'R')) {
          tim--;
          typ = 0;
          continue;
        }
      } else {
        if ((t[tim] == s[no]) && (d[tim] == 'R')) {
          no--;
          tim--;
          break;
        }
      }
    }
  }
  if (n - 1 - no + no2 > n)
    cout << 0 << endl;
  else
    cout << 1 + no - no2 << endl;
  return 0;
}
