'use strict'

/////////////////////////////////////
//コピペスペース//////////////////////

//定数
const INF  =  900719925474099 // Math.floor(Number.MAX_SAFE_INTEGER / 10);

//スペース区切りの数字列を数字の配列にして返す
function mapint(line){return line.split(' ').map((v)=>parseInt(v));}

function lower_bound(d,a,b,e){
    for(var c;1<b-a;)
        d[c=0|(a+b)/2]<e ? a=c : b=c;
    return d[a]<e?b:a
};

const MOD = 1000000007;

//コピペスペース//////////////////////
/////////////////////////////////////

function Main(input){
	let temp = input.trim().split('\n');
	let n = parseInt(temp[0]);

	let u = new Array(n-1);
	let v = new Array(n-1);
	let w = new Array(n-1);

	let net = [...new Array(n)].map(()=>new Array(n).fill(-999));
	let ans = new Array(n).fill(0);

	for(let i=1;i<n;i++){
		let tt=mapint(temp[i]);
		net[tt[0]-1][tt[1]-1] = tt[2];
		net[tt[1]-1][tt[0]-1] = tt[2];
	}
	
	//console.log(net.map(v=>v.join(' ')).join('\n'));
	let t;
	ans[0]=1;
	let next=[0];
	let l;
	while(next.length>0){
		l = next.length;
		for(let i=0;i<l;i++){
			t = next.shift();
			for(let j=0;j<n;j++){
				if(net[t][j]!=-999){
					//console.log('-------',t,j,net[t][j]);
					if(net[t][j]%2==0){
						ans[j]=ans[t];
					}else{
						ans[j]=-ans[t];
					}
					net[t][j] = -999;
					net[j][t] = -999;
					next.push(j);
					//console.log(ans.join(' '));
				}
			}
		}
	}


	console.log(ans.map(v=>v==1?1:0).join('\n'));

}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
