#include #include #include #include using namespace std; using mint=atcoder::modint1000000007; int N,M,K; vector >G[1<<17]; bool vis[1<<17][2]; long A[1<<17][2]; vectorusd; bool out; void dfs(int u,int k) { usd.push_back(u); for(paire:G[u]) { int v=e.first; long nA=e.second-A[u][k]; if(vis[v][!k]) { if(A[v][!k]!=nA)out=true; } else { A[v][!k]=nA; vis[v][!k]=true; dfs(v,!k); } } } main() { cin>>N>>M>>K; for(int i=0;i>x>>y>>z; x--,y--; G[x].push_back(make_pair(y,z)); G[y].push_back(make_pair(x,z)); } mint ans=1,del=1; for(int i=0;i