#include<bits/stdc++.h>
#define pb push_back
using namespace std;
const int N = 200005;
int n, D[N];
vector < int > Adj[N];
void DFS(int v, int p)
{
	for (int &u : Adj[v])
		if (u != p)
			D[u] = D[v] + 1, DFS(u, v);
}
int main()
{
	scanf("%d", &n);
	for (int i = 1; i < n; i++)
	{
		int v, u;
		scanf("%d%d", &v, &u);
		Adj[v].pb(u);
		Adj[u].pb(v);
	}
	DFS(1, 0);
	int id = 1;
	for (int i = 1; i <= n; i++)
		if (D[i] > D[id])
			id = i;
	D[id] = 0; DFS(id, 0);
	for (int i = 1; i <= n; i++)
		if (D[i] > D[id])
			id = i;
	int d = D[id];
	if (d % 3 == 1) return !printf("Second\n");
	return !printf("First\n");
}
