#include using namespace std; #define rep(i,n) for(int i=0; i d,ok; vector>> es; bool dfs(int cur, int v) { if(ok[cur]) return v==d[cur]; ok[cur]=1; d[cur]=v; bool res =true; for(auto [to,x]:es[cur]) res&=dfs(to,v^x); return res; } int main() { int n,m; cin>>n>>m; d.resize(n); ok.resize(n); es.resize(n); rep(i,m){ int a,b,c; cin>>a>>b>>c; --a;--b; es[a].emplace_back(b,c); es[b].emplace_back(a,c); } rep(i,n){ if(ok[i])continue; if(!dfs(i,0)){ cout<<-1<