#include <bits/stdc++.h>

using namespace std;

const int mm=1000000;
vector <vector<int> > graf;

int main()
{
    int n;
    cin >> n;
    vector <int> a(n,mm);
    graf.insert(graf.begin(),n,a);
    int najvece[n]={0};
    for (int i=0;i<n;i++)
        graf[i][i]=0;
    int u,v;
    for (int i=0;i<n-1;i++)
    {
        cin >> u >> v;
        graf[u-1][v-1]=graf[v-1][u-1]=1;
    }
    for (int k=0;k<n;k++)
        for (int i=0;i<n;i++)
        for (int j=0;j<n;j++)
        if (graf[i][j]>graf[i][k]+graf[k][j])
        graf[i][j]=graf[i][k]+graf[k][j];
    for (int i=0;i<n;i++)
    for (int j=0;j<n;j++){
            if (graf[i][j]>najvece[i] && graf[i][j]!=mm)
            najvece[i]=graf[i][j];
    }
    sort(najvece,najvece+n);
    if (n%2==1){
        cout << graf[n-1][n-3] << endl;
    } else
    cout << graf[n-2][n-4] << endl;
    return 0;
}