#include #include using namespace std; using ll = long long; #define rep(i,n) for(int i=0;i<(int)(n);i++) using mint = atcoder::modint998244353; int main(){ int n,m; cin>>n>>m; vector a(n); rep(i,n) cin>>a.at(i); atcoder::dsu uf(n); rep(i,m){ int u,v; cin>>u>>v; u--; v--; uf.merge(u,v); } vector v(n); rep(i,n){ v.at(uf.leader(i))+=a.at(i); } mint ans=1; rep(i,n){ ans*=v.at(uf.leader(i)); } cout<