n,m=map(int,input().split()) S='PDCA' s='#'+input() g=[[] for _ in range(n+1)] for _ in range(m): u,v=map(int,input().split()) if S.index(s[u])-S.index(s[v])==1: g[v].append(u) elif S.index(s[v])-S.index(s[u])==1: g[u].append(v) from collections import deque q=deque() mod=10**9+7 ans=0 for i in range(1,n+1): if s[i]=='P' and len(g[i])>0: q.append((i,1)) while q: now,cnt=q.popleft() if cnt==4: ans+=1 ans%=mod continue for to in g[now]: q.append((to,cnt+1)) print(ans)