class Tree
  def initialize(edges)
    @edges = edges
  end

  def diameter
    r = @edges.keys.first
    v, _ = farthest_vertex(r)
    u, d = farthest_vertex(v)
    [v, u, d]
  end

  private

  def farthest_vertex(s)
    queue = [[s, 0]]
    dist = -1
    fv = -1
    visited = Hash.new(false)

    until queue.empty?
      v, d = queue.shift

      next if visited[v]
      visited[v] = true

      if dist < d
        dist = d
        fv = v
      end

      @edges[v].each do |u|
        queue.push([u, d + 1])
      end
    end

    [fv, dist]
  end
end

N = gets.to_i
E = Hash.new { |h, k| h[k] = [] }

(N - 1).times do 
  a, b = gets.split.map(&:to_i)

  E[a] << b
  E[b] << a
end

tree = Tree.new(E)

_, _, dist = tree.diameter

if N == 1
  puts 'First'
elsif (dist - 1) % 3 == 0
  puts 'Second'
else
  puts 'First'
end
