#include <bits/stdc++.h>

using namespace std;

const int MX = 200000;

vector<int> G[MX];

pair<int, int> farthest(int v, int p = -1) {
	pair<int, int> res = {1, v};
	for (int u : G[v]) {
		if (u == p) continue;
		auto tmp = farthest(u, v);
		tmp.first++;
		res = max(res, tmp);
	}
	
	return res;
}

bool win[MX + 1];

int main() {
	int n;
	ignore = scanf("%d", &n);
	for (int i = 1, u, v; i < n; i++) {
		ignore = scanf("%d %d", &u, &v);
		u--; v--;
		G[u].emplace_back(v);
		G[v].emplace_back(u);
	}
	
	int d = farthest(farthest(0).second).first;
	
	win[0] = false;
	win[1] = true;
	win[2] = false;
	for (int i = 3; i <= d; i++) win[i] = win[i - 1] == false || win[i - 2] == false;
	
	printf("%s\n", win[d] ? "First" : "Second");
	
	return 0;
}
