import sys sys.setrecursionlimit(10**7) N, M = map(int, input().split()) S = input() G = [list(map(int, input().split())) for _ in range(M)] edges = [[] for _ in range(N)] for a, b in G: edges[a - 1].append(b - 1) edges[b - 1].append(a - 1) def dfs(start,path): ans = 0 check = 'PDCA' path.append(S[start]) for i in range(min(4,len(path))): if path[i] != check[i]: path.pop() return 0 if ''.join(path) == 'PDCA': path.pop() return 1 elif len(path) > 4: path.pop() return 0 for i in edges[start]: ans += dfs(i,path) path.pop() return ans ans = 0 for i in range(N): ans += dfs(i,[]) print(ans)