#include <bits/stdc++.h>

using namespace std;

const int N = 200200;

vector<int> g[N];
int d[N];
int rt = 1;
bool f[N];

void dfs(int u,int p) {
   if (d[u] > d[rt]) rt = u;
   for (int v : g[u]) if (v != p) {
      d[v] = d[u] + 1;
      dfs(v, u);
   }
}

int get() {
   dfs(1, -1);
   d[rt] = 0;;
   dfs(rt, -1);
   return d[rt];
}

int main() {
   int n; scanf("%d", &n);
   f[0] = true;
   for (int i = 1; i <= n; ++i) {
      if (i > 0 && !f[i - 1]) f[i] = true;
      if (i > 1 && !f[i - 2]) f[i] = true;
   }
   for (int i = 2; i <= n; ++i) {
      int u, v; scanf("%d %d", &u, &v);
      g[u].push_back(v), g[v].push_back(u);
   }
   puts(f[get()] ? "First" : "Second");
}
