#include using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include using namespace atcoder; using mint=atcoder::modint998244353; int main(){ int N,M;cin>>N>>M; string S;cin>>S; vector> edge(M); for(auto&&[a,b]:edge){ cin>>a>>b; a--;b--; } int cnt=0; for(auto&&e:S){ if(e=='?')cnt++; } vector pw={1}; for(int i=0;i