#include <bits/stdc++.h>
#define M 1000010
using namespace std;

int n, Head[M], Next[M], Go[M], Cnt = 0, len = 0, v;

void addedge(int x, int y) {
	Go[++Cnt] = y;
	Next[Cnt] = Head[x];
	Head[x] = Cnt;
}

void DFS(int x, int f = 0, int dep = 0) {
	if(len < dep) len = dep, v = x;
	for(int T = Head[x]; T; T = Next[T]) if(Go[T] != f) DFS(Go[T], x, dep + 1);
}

int main() {
	scanf("%d", &n);
	for(int i = 1; i < n; i++) {
		int a, b;
		scanf("%d%d", &a, &b);
		addedge(a, b);
		addedge(b, a);
	}
	DFS(1);
	DFS(v);
	if(len % 3 == 1) puts("Second"); else puts("First");
	return 0;
}