"use strict";

var dfs = function dfs(graph, weightList, start, c, weight, color) {
  color[start] = c;
  var nexts = graph[start];

  for (var i = 0; i < nexts.length; i++) {
    var next = nexts[i];
    var w = weightList[start][next];
    var co = color[next];

    if (co != -1) {
      continue;
    }

    if ((weight + w) % 2 == 1) {
      c = 1 - c;
    }

    dfs(graph, weightList, next, c, weight + w, color);
  }
};

var main = function main(input) {
  var args = input.split('\n');
  var N = args[0];
  var graph = new Array(N);
  var color = new Array(N);
  var weightList = new Array(N);

  for (var i = 0; i < N; i++) {
    graph[i] = new Array(N);
    weightList[i] = new Array(N);
    color[i] = -1;
  }

  for (var _i = 1; _i < N; _i++) {
    var u = parseInt(args[_i].split(' ')[0], 10);
    var v = parseInt(args[_i].split(' ')[1], 10);
    var w = parseInt(args[_i].split(' ')[2], 10);
    graph[u - 1].push(v - 1);
    graph[v - 1].push(u - 1);
    weightList[u - 1][v - 1] = w;
    weightList[v - 1][u - 1] = w;
  }

  dfs(graph, weightList, 0, 0, 0, color);

  for (var _i2 = 0; _i2 < N; _i2++) {
    console.log(color[_i2]);
  }
};

main(require('fs').readFileSync('/dev/stdin', 'utf-8'));