#include #include using namespace std; using namespace atcoder; using ll=long long; using mint=modint998244353; int main() { int n,m; cin>>n>>m; vector a(n); for(int i=0;i>t; a[i]=t; } vector> graph(n); for(int i=0;i>u>>v; u--;v--; graph[u].push_back(v); graph[v].push_back(u); } vector sum; vector> hist; vector seen(n); function rec=[&](int i,int t)->void{ seen[i]=true; sum[t]+=a[i]; hist[t].push_back(i); for(int x:graph[i]){ if(!seen[x])rec(x,t); } }; int cnt=0; for(int i=0;i()); rec(i,cnt-1); } mint ans=1; for(int i=0;i