#ifndef INCLUDED_MAIN #define INCLUDED_MAIN #include __FILE__ int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); ll n,m; cin>>n>>m; string s; cin>>s; vector> deps(n); rep(i,m){ ll a,b; cin>>a>>b; a--;b--; deps[a].push_back(b); deps[b].push_back(a); } ll global_q=0; for(auto ch:s){ if(ch=='?')global_q++; } ll aoi=0; rep(v,n){ if(s[v]!='o'&&s[v]!='?')continue; int f2=(s[v]=='?'?1:0); ll countA=0,countI=0,countU=0; for(auto u:deps[v]){ char c=s[u]; if(c=='a'){ countA++; }else if(c=='i'){ countI++; }else if(c=='?'){ countU++; } } ll cont=0; cont=((countA*countI)%mod*modpow(26,global_q-f2,1))%mod; cont=(cont+(((countA*countU+countU*countI)%mod*modpow(26,global_q-(f2+1),1))%mod))%mod; if(countU>=2){ cont=(cont+(((countU*(countU-1))%mod*modpow(26,global_q-(f2+2),1))%mod))%mod; } aoi=(aoi+cont)%mod; } cout< using namespace std; #define rep(i,n) for(int i=0;i0){ if(exp&1) result=(result*base)%mod; base=(base*base)%mod; exp>>=1; } } return result; } #endif