#include<stdio.h>
char s[200010];
char t[200010],d[200010];
int n,q;
int go(int x){
	for(int i=1;i<=q;i++){
		if(t[i]==s[x])x+=(d[i]=='L'?-1:1);
	}
	return x;
}
int main(){
	int i,l,r,mid,res;
	char t1[10],t2[10];
	scanf("%d%d%s",&n,&q,s+1);
	for(i=1;i<=q;i++){
		scanf("%s%s",t1,t2);
		t[i]=t1[0];
		d[i]=t2[0];
	}
	res=n;
	l=1;
	r=n;
	while(l<r){
		mid=(l+r)>>1;
		if(go(mid))
			r=mid;
		else
			l=mid+1;
	}
	if(go(l))l--;
	res-=l;
	l=1;
	r=n;
	while(l<r){
		mid=(l+r)>>1;
		if(go(mid)==n+1)
			r=mid;
		else
			l=mid+1;
	}
	if(go(l)<=n)l++;
	res-=n-l+1;
	printf("%d",res);
}