def f n,e
e.include?(n)&&0||$h[n].map{|a|1+f(a,e+[n])}.max||0
end
while(n=gets.to_i)>0
$h=([0]*101).map{[]}
n.times{a,b=(gets||"0 0").split.map(&:to_i);$h[a]<<b;$h[b]<<a}
puts (1..100).map{|i|f i,[]}.max
end