output_description: If Fennec wins, print `Fennec`; if Snuke wins, print `Snuke`.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1 b_1
      :
      a_{N-1} b_{N-1}
attempt: # coding=UTF-8
  
  N = int(input())
  moti = list(range(0, N, 1))
  
  # initalize
  for idx in range(0, N, 1):
      moti[idx] = []
  
  # input
  for idx in range(0, N - 1, 1):
      mozir = input()
      hyo = mozir.split(" ")
      a = int(hyo[0]) - 1
      b = int(hyo[1]) - 1
  
      moti[a].append(b)
      moti[b].append(a)
  
  # path 0 to N-1
  # width serach
  belong = list(range(0, N, 1))
  for idx in range(0, N, 1):
      belong[idx] = None
  
  belong[0] = "F"
  belong[N - 1] = "S"
  
  fennec_watch = [0]
  sunuke_watch = [N - 1]
  fennec_haven = 1
  sunuke_haven = 1
  fennec_zou = 1  # for breaking cond
  sunuke_zou = 1  # also
  Teban = "F"
  while True:
      if Teban == "F":
          fennec_next = []
          for mono in fennec_watch:
              kouho = moti[mono]
              for butu in kouho:
                  if belong[butu] == None:
                      fennec_next.append(butu)
                      belong[butu] = "F"
  
          fennec_watch = fennec_next
          fennec_zou = len(fennec_next)
          fennec_haven = fennec_haven + fennec_zou
      else:
          sunuke_next = []
          for mono in sunuke_watch:
              kouho = moti[mono]
              for butu in kouho:
                  if belong[butu] == None:
                      sunuke_next.append(butu)
                      belong[butu] = "S"
  
          sunuke_watch = sunuke_next
          sunuke_zou = len(sunuke_next)
          sunuke_haven = sunuke_haven + sunuke_zou
  
      if fennec_zou == 0 and sunuke_zou == 0:
          break
      Teban = "F" if Teban == "S" else "S"
  
  # when fennec_haven==sunuke_haven==k
  # k+1 th turn fennec 33-4
  if fennec_haven > sunuke_haven:
      print("Fennec")
  else:
      print("Snuke")
  
problem_description: Statement
  
  Fennec and Snuke are playing a board game.
  
  On the board, there are N cells numbered 1 through N, and N-1 roads, each
  connecting two cells. Cell a_i is adjacent to Cell b_i through the i-th road.
  Every cell can be reached from every other cell by repeatedly traveling to an
  adjacent cell. In terms of graph theory, the graph formed by the cells and the
  roads is a tree.
  
  Initially, Cell 1 is painted black, and Cell N is painted white. The other
  cells are not yet colored. Fennec (who goes first) and Snuke (who goes second)
  alternately paint an uncolored cell. More specifically, each player performs
  the following action in her/his turn:
  
    * Fennec: selects an uncolored cell that is adjacent to a **black** cell, and paints it **black**.
    * Snuke: selects an uncolored cell that is adjacent to a **white** cell, and paints it **white**.
  
  A player loses when she/he cannot paint a cell. Determine the winner of the
  game when Fennec and Snuke play optimally.
samples: [{"input": "7\n    3 6\n    1 2\n    3 1\n    7 4\n    5 7\n    1 4", "output": "Fennec\n    \n\nFor example, if Fennec first paints Cell 2 black, she will win regardless of\nSnuke's moves.\n\n* * *"}, {"input": "4\n    1 4\n    4 2\n    2 3", "output": "Snuke"}]