#include <bits/stdc++.h>
using namespace std;
int N;
const int MAX=200200;
vector<int> g[MAX];//connected
vector<int> dist(int u){
	vector<int> d(N,-1);//distance
	vector<int> q={u};//node in order to close to u
	d[u]=0;
	for(int i=0;i<q.size();i++){
		int x=q[i];
		for(int y:g[x]){
			if(d[y]==-1){
				d[y]=d[x]+1;
				q.push_back(y);
			}
		}
	}return d;
}
int main(){
	cin>>N;
	int a,b;
	for(int i=0;i<N-1;i++){
		cin>>a>>b;
		a--;b--;
		g[a].push_back(b);
		g[b].push_back(a);
	}
	vector<int> temp=dist(0);
	int rofl=max_element(temp.begin(),temp.end())-temp.begin();
	temp=dist(rofl);
	int diam=*max_element(temp.begin(),temp.end());
	if(diam%3==1)
		cout<<"Second\n";
	else
		cout<<"First\n";
	return 0;
}