#include<bits/stdc++.h>
#define F first
#define S second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int n,a[100005];
vector<pii> g[100005];
void dfs(int x,int y){
	a[x]=y;
	for(int i=0;i<g[x].size();i++)
		if(a[g[x][i].F]==-1)dfs(g[x][i].F,(y+g[x][i].S%2)%2);
}
int main(){
	memset(a,-1,sizeof(a));
	cin >> n;
	for(int i=0;i<n-1;i++){
		int x,y,z;
		cin >> x >> y >> z;
		x--,y--;
		g[x].push_back(make_pair(y,z));
		g[y].push_back(make_pair(x,z));
	}
	for(int i=0;i<n;i++)
		if(a[i]==-1)dfs(i,0);
	for(int i=0;i<n;i++)
		cout << a[i] << endl;
    return 0;
}