n=gets.to_i
e=(0..n).map{[]}.to_a
(n-1).times{|i|
a,b=gets.split.map &:to_i
e[a]<<i
e[b]<<i
}
c=e.map(&:size).max
a=[0]*(n-1)
(1..n).each{|v|
u={}
e[v].map{|j|u[a[j]]=1}
t=1
e[v].map{|j|
if 1>a[j]
t+=1 while !u[t].nil?
a[j]=t
t+=1
end
}
}
p c
a.map{|i|p i}
