#include #include using namespace std; int main(){ using mint=atcoder::modint; int n,m,b; cin>>n>>m>>b; mint::set_mod(b); vector>> g(n); atcoder::dsu uf(n); for (int i=0;i>u>>v>>c; u--;v--; g[u].push_back({v,c}); g[v].push_back({u,c}); uf.merge(u,v); } vector vis(n); vector val(n); queue q; for (auto vec:uf.groups()){ for (int s=0;s