#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,h[N],to[N],nx[N],idx,d[N],v[N],t;
long long s=0,s1=0;
void add_edge(int u,int v)
{
to[++idx]=v;
nx[idx]=h[u];
h[u]=idx;
}
void dfs(int u,int pig)
{
for(int i=h[u]; i; i=nx[i])
{
int v=to[i];
if(v==pig) continue;
d[v]=d[u]+1;
dfs(v,u);
}
}
int main()
{
scanf("%d",&n);
for(int i=1; i<=n-1; i++)
{
int u,v;
scanf("%d%d",&u,&v);
add_edge(u,v);
add_edge(v,u);
}
d[1]=1;
dfs(1,0);
for(int i=1; i<=n; i++)
s+=d[i];
if(s%2==1)
{
printf("-1");
}
else
{
long long i=0;
while(s1<=s/2) s1+=d[++i];
if(s1>s/2)
{
t=s1-s/2;
}
for(int j=1; j<i; j++)
if(d[j]!=t)
v[j]=1;
for(int i=1; i<=n; i++) printf("%d ",v[i]);
}
return 0;
}````