#include <iostream>
#include <vector>
using namespace std;

int N,a,b,inf = 1e9,d[200010];

vector<vector<int>> v(200010);

void dfs(int n){
	for(int i=0;i<v[n].size();i++){
		if(d[v[n][i]]==inf){
			d[v[n][i]] = d[n]+1;
			dfs(v[n][i]);
		}
	}
}

int main(){
	cin >> N;
    if(N==1){
        cout << "First" << endl;
        return 0;
    }
	for(int i=1;i<=N-1;i++){
		cin >> a >> b;
		v[a].push_back(b);
		v[b].push_back(a);
		d[i] = inf;
	}
	d[N] = inf;
	d[1] = 0;
	dfs(1);
	int ma = 0;
	for(int i=1;i<=N;i++){
		if(ma<d[i]){
			ma = d[i];
			a = i;
		}
		d[i] = inf;
	}
	d[a] = 0;
	dfs(a);
	ma = 0;
	for(int i=1;i<=N;i++){
		if(ma<d[i]){
			ma = d[i];
			b = i;
		}
	}
//    cerr << ma << endl;
    cout << (ma%3==1? "Second":"First") << endl;
}
