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)