#include <iostream>
#include <vector>

using namespace std;


ostream& operator<<(ostream& out, const vector<int> &v) {
    for(auto it=v.begin();it != v.end();it++) {
        cout << *it << " ";
    }
    return out;
}

int n, q;
string s;
vector<set<int>> cs(26);

void activate(int i) {
    cs[s[i] - 'A'].insert(i);
}
void deactivate(int i) {
    cs[s[i] - 'A'].remove(i);
}
int main() {
    cin >> n >> q;
    cin >> s;
    vector<vector<int>> cs(26);
    for(int i=0;i<n;i++) {
        activate(i);
    }
    vector<int> golems(n+2, 1);
    golems[0] = golems[n+1] = 0;
    for(int i=0;i<q;i++) {
        //cout << golems << endl;
        char t,d;
        cin >> t >> d;
        for(int idx: cs[t - 'A']) {
            if (d == 'R') {
                golems[idx+2]+=golems[idx+1];
                if (idx+1 < n) {
                    activate(idx+1);
                }
            } else {
                golems[idx]+=golems[idx+1];
                if (idx-1 >=0) {
                    activate(idx-1);
                }
            }
            golems[idx+1] = 0;
            deactivate(idx);
        }
    }
    //cout << golems << endl;
    cout << (n - golems[0] - golems[n+1]) << endl;
    return 0;
}