#include<iostream>
#include<cstdio>
#include<vector>
const int N=2e5+5;
std::vector<int> g[N];
int dis[N],n;
void dfs(int u,int f,int dep) {
    dis[u]=dep;
    for(int v:g[u]) if(v!=f) {
        dfs(v,u,dep+1);
    }
}
int main() {
    scanf("%d",&n);
    for(int u,v,i=1;i<n;i++) scanf("%d%d",&u,&v),g[u].push_back(v),g[v].push_back(u);
    dfs(1,1,1);
    int rt=1;
    for(int i=2;i<=n;i++) if(dis[i]>dis[rt]) rt=i;
    dfs(rt,rt,1);int mx=1;
    for(int i=1;i<=n;i++) mx=std::max(mx,dis[i]);
    printf("%s",mx%3==2?"Second":"First");
    return 0;
}
