N,M = map(int,input().split()) S = input() lis = [ [] for i in range(N) ] for i in range(M): A,B = map(int,input().split()) A -= 1 B -= 1 lis[A].append(B) lis[B].append(A) qnum_base = 0 for i in range(N): if S[i] == "?": qnum_base += 1 mod = 998244353 ans = 0 for v in range(N): aoiq = [0,0,0,0] if S[v] not in "o?": continue if S[v] == "o": qnum = qnum_base else: qnum = qnum_base-1 for i in lis[v]: if S[i] == "a": aoiq[0] += 1 elif S[i] == "o": aoiq[1] += 1 elif S[i] == "i": aoiq[2] += 1 elif S[i] == "?": aoiq[3] += 1 now = aoiq[0] * aoiq[2] * pow(26,qnum,mod) % mod if aoiq[3] >= 1: now += aoiq[0] * aoiq[3] * pow(26,qnum-1,mod) % mod now %= mod now += aoiq[3] * aoiq[2] * pow(26,qnum-1,mod) % mod now %= mod if aoiq[3] >= 2: now += aoiq[3] * (aoiq[3]-1) * pow(26,qnum-2,mod) % mod now %= mod ans += now # print (now) ans %= mod print (ans % mod)