from collections import Counter MOD = 998244353 N, M = map(int, input().split()) S = list(input()) q = S.count("?") graph = [[] for _ in range(N)] for i in range(M): u, v = map(int, input().split()) graph[u - 1].append(v - 1) graph[v - 1].append(u - 1) ans = 0 for i in range(N): if S[i] not in ("o", "?"): continue _q = q if S[i] == "o" else q - 1 cnt = Counter(S[j] for j in graph[i]) ans += cnt["a"] * cnt["i"] * pow(26, _q, MOD) ans %= MOD if _q >= 1: ans += cnt["?"] * cnt["i"] * pow(26, _q - 1, MOD) ans %= MOD ans += cnt["a"] * cnt["?"] * pow(26, _q - 1, MOD) ans %= MOD if _q >= 2: ans += cnt["?"] * (cnt["?"] - 1) * pow(26, _q - 2, MOD) ans %= MOD print(ans)