#include <bits/stdc++.h>
using namespace std;

int main(){
  int N;
  cin >> N;
  map<int, set<pair<int, int>>> mp;
  for (int i=0; i<N; i++){
    int u, v, w;
    cin >> u >> v >> w;
    mp[u].insert(make_pair(v,w));
    mp[v].insert(make_pair(u,w));
  }
  vector<long long> dst(N+1,-1);
  queue<int> q;
  q.push(1);
  dst[1] = 0;
  while (!q.empty()){
    int check = q.front();
    q.pop();
    for (auto k: mp[check]){
      if (dst[k.first]<0){
        q.push(k.first);
        dst[k.first] = dst[check]+k.second;
      }
    }
  }
  for (int i=1; i<=N; i++){
    cout << dst[i]%2 << endl;
  }
}
