#include <bits/stdc++.h>
using namespace std;
long long mPn(long long m, long long n) {
  long long a = 1;
  for (int i = 0; i < n; i++) {
    a *= m - i;
  }
  return a;
}
long long exc(long long m) {
  long long a = 1;
  for (int i = (int)(1); i < (int)(m); i++) {
    a *= i + 1;
  }
  return a;
}
long long mCn(long long m, long long n) {
  long long a = 1, b = 1;
  for (int i = 0; i < n; i++) {
    a *= m - i;
    b *= n - i;
  }
  return a / b;
}
int main() {
  int N, Q;
  cin >> N >> Q;
  char s[N + 1];
  scanf("%s", s);
  vector<vector<int> > a(26);
  for (int i = 0; i < N; i++) {
    a[s[i] - 'A'].push_back(i);
  }
  vector<int> b(N);
  for (int i = 0; i < N; i++) b[i] = 1;
  int destroy = 0;
  for (int i = 0; i < Q; i++) {
    char id, lr;
    cin >> id >> lr;
    int add = 0;
    if (lr == 'L') {
      add = -1;
    } else {
      add = 1;
    }
    for (int j = 0; j < a[id - 'A'].size(); j++) {
      if (a[id - 'A'][j] + add < 0 || a[id - 'A'][j] + add >= N) {
        destroy += b[a[id - 'A'][j]];
      } else {
        b[a[id - 'A'][j] + add] += b[a[id - 'A'][j]];
      }
      b[a[id - 'A'][j]] = 0;
    }
  }
  cout << N - destroy << endl;
  return 0;
}
