#include <iostream>
#include <queue>
using namespace std;
int dp[100005];
queue <int> e[100005];
int n,x,y,p,q;
void dfs(int u, int fa) {
dp[u]=dp[fa]+1;
for(int i=0; i<e[u].size(); i++) {
int v=e[u].front();
e[u].pop();
e[u].push(v);
if(v==fa)continue;
dfs(v,u);
}
if(dp [u]>dp [q])q=u;
}
int main() {
cin>>n;
for(int i=1;i<n;i++){
cin>>x>>y;
e[x].push(y);
e[y].push(x);
}
dfs(1,0),swap(p,q);
dfs(p,0);
cout<<dp [q]<<endl;
return 0;
}