#include #include #include #include #include #include using namespace std; using mint=atcoder::modint998244353; int N,M; int A[250]; int W[250]; int dist[250]; vectorP; vectorG[250]; mint ans[250]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N>>M; for(int i=0;i>A[i]; int a=A[i]; for(int p=2;p*p<=a;p++)if(a%p==0) { while(a%p==0)a/=p; P.push_back(p); } if(a>1)P.push_back(a); } sort(P.begin(),P.end()); P.erase(unique(P.begin(),P.end()),P.end()); for(int i=0;i>u>>v; u--,v--; G[u].push_back(v); G[v].push_back(u); } for(int p:P) { for(int i=0;i >Q; Q.push(make_pair(-dist[0],0)); while(!Q.empty()) { int u=Q.top().second; int d=-Q.top().first; Q.pop(); if(dist[u]nd) { dist[v]=nd; Q.push(make_pair(-dist[v],v)); } } } //cout<<"p = "<