#include <iostream>
using namespace std;
int n, q;
string s;
char t[200000], d[200000];

int f(int x){
    int p=x;
    for(int i=0;i<q;i++){
        if(p<0||p>=n)break;
        if(s[p]==t[i]){
            if(d[i]=='L')p--;
            else p++;
        }
    }
    if(p<0)return -1;
    if(p>=n)return 1;
    return 0;
}


int main(void){
    cin>>n>>q>>s;
    for(int i=0;i<q;i++){
        cin>>t[i]>>d[i];
    }
    int a=n, l=-1, r=n;
    while(l+1<r){
        int m=(l+r)/2;
        if(f(m)==-1){
            l=m;
        }else{
            r=m;
        }
    }
    a-=l+1;
    l=-1, r=n;
    while(l+1<r){
        int m=(l+r)/2;
        if(f(m)==1){
            r=m;
        }else{
            l=m;
        }
    }
    a-=n-r;
    cout<<a<<endl;
}
