import sys

input = sys.stdin.readline

sys.setrecursionlimit(10**7)



def main():

  n = int(eval(input()))

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

  for _ in range(n-1):

    a, b = list(map(int, input().split()))

    a -= 1

    b -= 1

    F[a].append(b)

    F[b].append(a)

  seenB = [False]*n

  seenW = [False]*n

  distB = [0]*n

  distW = [0]*n

  def dfs(v, seen, dist):

    seen[v] = True

    for nv in F[v]:

      if seen[nv]:

        continue

      dist[nv] = dist[v] + 1

      dfs(nv, seen, dist)

  dfs(0, seenB, distB)

  dfs(n-1, seenW, distW)

  b, w = 0, 0

  for i in range(n):

    if distB[i] <= distW[i]:

      b += 1

    else:

      w += 1

  if b > w:

    print("Fennec")

  else:

    print("Snuke")

      

if __name__ == '__main__':

  main()
import sys

input = sys.stdin.readline



n = int(eval(input()))

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

for _ in range(n-1):

  a, b = list(map(int, input().split()))

  a -= 1

  b -= 1

  T[a].append(b)

  T[b].append(a)

def dfs(v):

  dist = [-1]*n

  dist[v] = 0

  stack = [v]

  while stack:

    nv = stack.pop()

    for i in T[nv]:

      if dist[i] == -1:

        dist[i] = dist[nv] + 1

        stack.append(i)

  return dist

B = dfs(0)

W = dfs(n-1)

cnt_b, cnt_w = 0, 0

for i in range(n):

  if B[i] <= W[i]:

    cnt_b += 1

  else:

    cnt_w += 1

if cnt_b > cnt_w:

  print("Fennec")

else:

  print("Snuke")
import sys

input = sys.stdin.readline
sys.setrecursionlimit(10**7)


def main():
    n = int(eval(input()))
    F = [[] for _ in range(n)]
    for _ in range(n - 1):
        a, b = list(map(int, input().split()))
        a -= 1
        b -= 1
        F[a].append(b)
        F[b].append(a)
    seenB = [False] * n
    seenW = [False] * n
    distB = [0] * n
    distW = [0] * n

    def dfs(v, seen, dist):
        seen[v] = True
        for nv in F[v]:
            if seen[nv]:
                continue
            dist[nv] = dist[v] + 1
            dfs(nv, seen, dist)

    dfs(0, seenB, distB)
    dfs(n - 1, seenW, distW)
    b, w = 0, 0
    for i in range(n):
        if distB[i] <= distW[i]:
            b += 1
        else:
            w += 1
    if b > w:
        print("Fennec")
    else:
        print("Snuke")


if __name__ == "__main__":
    main()

import sys

input = sys.stdin.readline
n = int(eval(input()))
T = [[] for _ in range(n)]
for _ in range(n - 1):
    a, b = list(map(int, input().split()))
    a -= 1
    b -= 1
    T[a].append(b)
    T[b].append(a)


def dfs(v):
    dist = [-1] * n
    dist[v] = 0
    stack = [v]
    while stack:
        nv = stack.pop()
        for i in T[nv]:
            if dist[i] == -1:
                dist[i] = dist[nv] + 1
                stack.append(i)
    return dist


B = dfs(0)
W = dfs(n - 1)
cnt_b, cnt_w = 0, 0
for i in range(n):
    if B[i] <= W[i]:
        cnt_b += 1
    else:
        cnt_w += 1
if cnt_b > cnt_w:
    print("Fennec")
else:
    print("Snuke")

-sys.setrecursionlimit(10**7) +n = int(eval(input())) +T = [[] for _ in range(n)] +for _ in range(n - 1): +    a, b = list(map(int, input().split())) +    a -= 1 +    b -= 1 +    T[a].append(b) +    T[b].append(a) -def main(): -    n = int(eval(input())) -    F = [[] for _ in range(n)] -    for _ in range(n - 1): -        a, b = list(map(int, input().split())) -        a -= 1 -        b -= 1 -        F[a].append(b) -        F[b].append(a) -    seenB = [False] * n -    seenW = [False] * n -    distB = [0] * n -    distW = [0] * n - -    def dfs(v, seen, dist): -        seen[v] = True -        for nv in F[v]: -            if seen[nv]: -                continue -            dist[nv] = dist[v] + 1 -            dfs(nv, seen, dist) - -    dfs(0, seenB, distB) -    dfs(n - 1, seenW, distW) -    b, w = 0, 0 -    for i in range(n): -        if distB[i] <= distW[i]: -            b += 1 -        else: -            w += 1 -    if b > w: -        print("Fennec") -    else: -        print("Snuke") +def dfs(v): +    dist = [-1] * n +    dist[v] = 0 +    stack = [v] +    while stack: +        nv = stack.pop() +        for i in T[nv]: +            if dist[i] == -1: +                dist[i] = dist[nv] + 1 +                stack.append(i) +    return dist -if __name__ == "__main__": -    main() +B = dfs(0) +W = dfs(n - 1) +cnt_b, cnt_w = 0, 0 +for i in range(n): +    if B[i] <= W[i]: +        cnt_b += 1 +    else: +        cnt_w += 1 +if cnt_b > cnt_w: +    print("Fennec") +else: +    print("Snuke")