import sys

range = xrange

input = sys.stdin.readline



n = int(eval(input()))

coupl = [[] for _ in range(n)]

for _ in range(n-1):

    u,v = [int(x)-1 for x in input().split()]

    

    coupl[u].append(v)

    coupl[v].append(u)



root = 0

for _ in range(2):

    depth = [-1]*n

    depth[root] = 1

    Q = [root]

    for node in Q:

        d = depth[node]

        for nei in coupl[node]:

            if depth[nei]==-1:

                depth[nei] = d+1

                Q.append(nei)



    root = max(list(range(n)), key = lambda i:depth[i])

dia = depth[root]

if dia%3!=2:

    print('First')

else:

    print('Second')
import sys

range = xrange



inp = [int(x) for x in sys.stdin.read().split()]

ii = 0



n = inp[ii]

ii += 1



coupl = [[] for _ in range(n)]

for _ in range(n-1):

    u,v = inp[ii]-1, inp[ii+1]-1

    ii += 2

    

    coupl[u].append(v)

    coupl[v].append(u)



root = 0

for _ in range(2):

    depth = [-1]*n

    depth[root] = 1

    Q = [root]

    for node in Q:

        d = depth[node]

        for nei in coupl[node]:

            if depth[nei]==-1:

                depth[nei] = d+1

                Q.append(nei)



    root = max(list(range(n)), key = lambda i:depth[i])

dia = depth[root]

if dia%3!=2:

    print('First')

else:

    print('Second')
import sys

range = xrange
input = sys.stdin.readline
n = int(eval(input()))
coupl = [[] for _ in range(n)]
for _ in range(n - 1):
    u, v = [int(x) - 1 for x in input().split()]
    coupl[u].append(v)
    coupl[v].append(u)
root = 0
for _ in range(2):
    depth = [-1] * n
    depth[root] = 1
    Q = [root]
    for node in Q:
        d = depth[node]
        for nei in coupl[node]:
            if depth[nei] == -1:
                depth[nei] = d + 1
                Q.append(nei)
    root = max(list(range(n)), key=lambda i: depth[i])
dia = depth[root]
if dia % 3 != 2:
    print("First")
else:
    print("Second")

import sys

range = xrange
inp = [int(x) for x in sys.stdin.read().split()]
ii = 0
n = inp[ii]
ii += 1
coupl = [[] for _ in range(n)]
for _ in range(n - 1):
    u, v = inp[ii] - 1, inp[ii + 1] - 1
    ii += 2
    coupl[u].append(v)
    coupl[v].append(u)
root = 0
for _ in range(2):
    depth = [-1] * n
    depth[root] = 1
    Q = [root]
    for node in Q:
        d = depth[node]
        for nei in coupl[node]:
            if depth[nei] == -1:
                depth[nei] = d + 1
                Q.append(nei)
    root = max(list(range(n)), key=lambda i: depth[i])
dia = depth[root]
if dia % 3 != 2:
    print("First")
else:
    print("Second")

-input = sys.stdin.readline -n = int(eval(input())) +inp = [int(x) for x in sys.stdin.read().split()] +ii = 0 +n = inp[ii] +ii += 1 -    u, v = [int(x) - 1 for x in input().split()] +    u, v = inp[ii] - 1, inp[ii + 1] - 1 +    ii += 2