#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
int n, D[201000];
vector<int>E[201000];
void DFS(int a, int pp) {
	for (auto &x : E[a]) {
		if (x != pp) {
			D[x] = D[a] + 1;
			DFS(x, a);
		}
	}
}
int main() {
	int i, a, b;
	scanf("%d", &n);
	for (i = 1; i < n; i++) {
		scanf("%d%d", &a, &b);
		E[a].push_back(b);
		E[b].push_back(a);
	}
	D[1] = 0;
	DFS(1, 0);
	int Mx = -1, pv = -1;
	for (i = 1; i <= n; i++) {
		if (D[i] > Mx)Mx = D[i], pv = i;
	}
	D[pv] = 0;
	DFS(pv, 0);
	Mx = -1;
	for (i = 1; i <= n; i++) {
		Mx = max(Mx, D[i]);
	}
	if (Mx % 3 == 1)puts("Second");
	else puts("First");
}