#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for (int i=0;i<(n);++i)

int N,u,v,w;
vector<pair<int,int> > G[100010];
int color[100010];

// 奇数だったら今とは違う色で塗る。
void dfs(int v, int pv, int c){
    color[v] = c;
    for(auto nv : G[v]){
        if(nv.first == pv) continue;
        dfs(nv.first, v, c^nv.second);
    }
}

int main(){
    cin >> N;
    REP(i,N-1){
        cin >> u >> v >> w;
        G[u].push_back(make_pair(v,w%2));
        G[v].push_back(make_pair(u,w%2));
    }
    dfs(1,0,0);
    REP(i,N) cout << color[i+1] << "\n";
    return 0;
}