#include #include #include using namespace std; typedef int var; //ifstream cin("xorgame.in"); //ofstream cout("xorgame.out"); struct Edge {var n, w; Edge(var a, var b): n(a), w(b) {} Edge() {} }; const var MAXN = 100001; var n, m; vector G[MAXN]; var SUM[MAXN]; bool VIZ[MAXN]; void dfs(var node) { VIZ[node] = 1; for(vector::iterator it = G[node].begin(); it != G[node].end(); ++it) { Edge &e = *it; SUM[e.n] = SUM[node] ^ e.w; if(!VIZ[e.n]) { dfs(e.n); } } } int main() { var n, m, a, b, c; cin>>n>>m; for(var i=1; i<=m; i++) { cin>>a>>b>>c; G[a-1].push_back(Edge(b, c)); G[b].push_back(Edge(a-1, c)); } for(var i=0; i<=n; i++) { if(!VIZ[i]) { dfs(i); } } for(var i=1; i<=n; i++) { cout<<(SUM[i] ^ SUM[i-1])<<" "; } return 0; }