from collections import defaultdict
n=int(input())
edges=defaultdict(list)
for i in range(n-1):
u,v=map(int,input().split())
edges[u].append(v)
edges[v].append(u)
res=[0]
d=[0]*(n+1)
def dfs(x,fa):
for e in edges[x]:
if e==fa:
continue
dfs(e,x)
res[0]=max(res[0],d[x]+d[e]+1)
d[x]=max(d[x],d[e]+1)
dfs(1,-1)
print(res[0])