Farmer John's farm consists of N pastures (2≤N≤105) connected by N−1 roads, so that any pasture is reachable from any other pasture. That is, the farm is a tree. But after 28 years of dealing with the tricky algorithmic problems that inevitably arise from trees, FJ has decided that a farm in the shape of a tree is just too complex. He believes that algorithmic problems are simpler on paths.
Thus, his plan is to partition the set of roads into several paths and delegate responsibility for these path among his worthy farm hands. He doesn't care about the number of paths. However, he wants to make sure that these paths are all as large as possible, so that no farm hand can get away with asymptotically inefficient algorithms!
Help Farmer John determine the largest positive integer K such that the roads can be partitioned into paths of length at least K.
SCORING:
- In test cases 2-4 the tree forms a star; at most one vertex has degree greater than two.
- Test cases 5-8 satisfy N≤103.
- Test cases 9-15 satisfy no additional constraints..
INPUT FORMAT (file deleg.in):
The first line contains a single integer N.The next N−1 lines each contain two space-separated integers a and b describing an edge between vertices a and b. Both a and b are in the range 1…N.
OUTPUT FORMAT (file deleg.out):
Print K.SAMPLE INPUT:
8 1 2 1 3 1 4 4 5 1 6 6 7 7 8
SAMPLE OUTPUT:
3
One possible set of paths is as follows: 2−1−6−7−8,3−1−4−5
Problem credits: Mark Gordon and Dhruv Rohatgi