#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL)
#define ll long long int
#define ld long double
using namespace std;
const int N = 1e6 + 5;
const int MOD = 1e9 + 7;
vector<int> graph[N];
bool vis[N];
int mx = 0, node;
void dfs(int source, int far){
vis[source] = 1;
if(far > mx){
mx = far;
node = source;
}
for(auto k : graph[source])
if(!vis[k])
dfs(k, far + 1);
}
int main(){
fast;
int n;
cin >> n;
for(int i = 0; i < n - 1; ++i){
int u, v;
cin >> u >> v;
graph[u].push_back(v);
graph[v].push_back(u);
}
dfs(1, 0);
memset(vis, 0, sizeof(vis));
dfs(node, 0);
cout << 3 * mx << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoTlVMTCk7Y291dC50aWUoTlVMTCkKI2RlZmluZSBsbCBsb25nIGxvbmcgaW50CiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE4gPSAxZTYgKyA1Owpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsKdmVjdG9yPGludD4gZ3JhcGhbTl07CmJvb2wgdmlzW05dOwppbnQgbXggPSAwLCBub2RlOwoKdm9pZCBkZnMoaW50IHNvdXJjZSwgaW50IGZhcil7Cgl2aXNbc291cmNlXSA9IDE7CglpZihmYXIgPiBteCl7CgkJbXggPSBmYXI7CgkJbm9kZSA9IHNvdXJjZTsKCX0KCWZvcihhdXRvIGsgOiBncmFwaFtzb3VyY2VdKQoJCWlmKCF2aXNba10pCgkJCWRmcyhrLCBmYXIgKyAxKTsKfQkKCmludCBtYWluKCl7CglmYXN0OwoJaW50IG47CgljaW4gPj4gbjsKCWZvcihpbnQgaSA9IDA7IGkgPCBuIC0gMTsgKytpKXsKCQlpbnQgdSwgdjsKCQljaW4gPj4gdSA+PiB2OwoJCWdyYXBoW3VdLnB1c2hfYmFjayh2KTsKCQlncmFwaFt2XS5wdXNoX2JhY2sodSk7Cgl9CglkZnMoMSwgMCk7CgltZW1zZXQodmlzLCAwLCBzaXplb2YodmlzKSk7CglkZnMobm9kZSwgMCk7Cgljb3V0IDw8IDMgKiBteCA8PCAnXG4nOwoJcmV0dXJuIDA7Cn0=