n,m=map(int,input().split()) S=input() e=[[] for i in range(n)] for i in range(m): a,b=map(int,input().split()) a-=1 b-=1 e[a]+=[b] e[b]+=[a] M=998244353 N=n fa=[1] for i in range(1,N+1): fa+=[fa[-1]*i%M] fb=[pow(fa[N],M-2,M)] for i in reversed(range(1,N+1)): fb+=[fb[-1]*i%M] fb.reverse() qc=S.count("?") ans=0 p26=[1] for i in range(n): p26+=[p26[-1]*26%M] p24=[1] for i in range(n): p24+=[p24[-1]*24%M] for s in range(n): if S[s]=="o" or S[s]=="?": c=[0,0,0] for t in e[s]: if S[t]=="a": c[0]+=1 if S[t]=="i": c[1]+=1 if S[t]=="?": c[2]+=1 for i in range(c[2]+1): for j in range(c[2]-i+1): if i+j<=c[2]: ans+=fa[c[2]]*fb[i]*fb[j]*fb[c[2]-i-j]%M*(c[0]+i)*(c[1]+j)*p24[c[2]-i-j]*p26[qc-c[2]-(S[s]=="?")]%M ans%=M print(ans)