def bfs():
while que:
x = que.pop(0)
for i in arr[x]:
if visited[i] == 0:
visited[i] = 1
que.append(i)
time[i] = time[x] + 1
n = int(input())
arr = [set() for i in range(n)]
visited = [0] * n
time = [0] * n
que = [0]
for i in range(n - 1):
a, b = map(int, input().split())
arr[a - 1].add(b - 1)
arr[b - 1].add(a - 1)
visited[0] = 1
bfs()
M = time.index(max(time))
visited = [0] * n
time = [0] * n
visited[M] = 1
que = [M]
bfs()
print(max(time) + 1)