#高速化heapqダイクストラ

from collections import *

from heapq import*

import sys

input=lambda:sys.stdin.readline()





def DIJKSTRA(point,d):

    cost      = [float("inf")]*(n+1)

    Q         = []

    cost[point]=0

    heappush(Q,(point,cost[point]))

    while Q:

        prefnd,tmpC=heappop(Q)

        if cost[prefnd]<tmpC:

            continue

        for node,c in d[prefnd]:

            altC=c+tmpC

            if cost[node]>altC:

                cost[node]=altC

                heappush(Q,(node,altC))

    return cost



n=int(eval(input()))

d={}

for i in range(n-1):

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

    if a in list(d.keys()):

        d[a].append([b,1])

    else:

        d[a]=[[b,1]]

    if b in list(d.keys()):

        d[b].append([a,1])

    else:

        d[b]=[[a,1]]

        

x=DIJKSTRA(1,d)[1:]

y=DIJKSTRA(n,d)[1:]

#print(x)

#print(y)

F=0

S=0

for i in range(n):

    if x[i]<=y[i]:

        F+=1

    else:

        S+=1

if F<=S:

    print("Snuke")

else:

    print("Fennec")
#高速化heapqダイクストラ

from collections import *

from heapq import*

import sys

input=lambda:sys.stdin.readline()





def BFS(point,d):

    cost=[1e7]*(n+1)

    cost[point]=0

    Q=[]

    heappush(Q,(0,point))

    

    while Q:

        c,p=heappop(Q)

        for np in d[p]:

            if cost[np]==1e7:

                cost[np]=c+1

                heappush(Q,(c+1,np))

    return cost



n=int(eval(input()))

d={}

for i in range(n-1):

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

    if a in list(d.keys()):

        d[a].append(b)

    else:

        d[a]=[b]

    if b in list(d.keys()):

        d[b].append(a)

    else:

        d[b]=[a]

        

x=BFS(1,d)[1:]

y=BFS(n,d)[1:]



#print(x,y)



F=0

S=0



for s,t in zip(x,y):

    if s<=t:

        F+=1

    else:

        S+=1



if F<=S:

    print("Snuke")

else:

    print("Fennec")
# 高速化heapqダイクストラ
from collections import *
from heapq import *
import sys

input = lambda: sys.stdin.readline()


def DIJKSTRA(point, d):
    cost = [float("inf")] * (n + 1)
    Q = []
    cost[point] = 0
    heappush(Q, (point, cost[point]))
    while Q:
        prefnd, tmpC = heappop(Q)
        if cost[prefnd] < tmpC:
            continue
        for node, c in d[prefnd]:
            altC = c + tmpC
            if cost[node] > altC:
                cost[node] = altC
                heappush(Q, (node, altC))
    return cost


n = int(eval(input()))
d = {}
for i in range(n - 1):
    a, b = list(map(int, input().split()))
    if a in list(d.keys()):
        d[a].append([b, 1])
    else:
        d[a] = [[b, 1]]
    if b in list(d.keys()):
        d[b].append([a, 1])
    else:
        d[b] = [[a, 1]]
x = DIJKSTRA(1, d)[1:]
y = DIJKSTRA(n, d)[1:]
# print(x)
# print(y)
F = 0
S = 0
for i in range(n):
    if x[i] <= y[i]:
        F += 1
    else:
        S += 1
if F <= S:
    print("Snuke")
else:
    print("Fennec")

# 高速化heapqダイクストラ
from collections import *
from heapq import *
import sys

input = lambda: sys.stdin.readline()


def BFS(point, d):
    cost = [1e7] * (n + 1)
    cost[point] = 0
    Q = []
    heappush(Q, (0, point))
    while Q:
        c, p = heappop(Q)
        for np in d[p]:
            if cost[np] == 1e7:
                cost[np] = c + 1
                heappush(Q, (c + 1, np))
    return cost


n = int(eval(input()))
d = {}
for i in range(n - 1):
    a, b = list(map(int, input().split()))
    if a in list(d.keys()):
        d[a].append(b)
    else:
        d[a] = [b]
    if b in list(d.keys()):
        d[b].append(a)
    else:
        d[b] = [a]
x = BFS(1, d)[1:]
y = BFS(n, d)[1:]
# print(x,y)
F = 0
S = 0
for s, t in zip(x, y):
    if s <= t:
        F += 1
    else:
        S += 1
if F <= S:
    print("Snuke")
else:
    print("Fennec")

-def DIJKSTRA(point, d): -    cost = [float("inf")] * (n + 1) +def BFS(point, d): +    cost = [1e7] * (n + 1) +    cost[point] = 0 -    cost[point] = 0 -    heappush(Q, (point, cost[point])) +    heappush(Q, (0, point)) -        prefnd, tmpC = heappop(Q) -        if cost[prefnd] < tmpC: -            continue -        for node, c in d[prefnd]: -            altC = c + tmpC -            if cost[node] > altC: -                cost[node] = altC -                heappush(Q, (node, altC)) +        c, p = heappop(Q) +        for np in d[p]: +            if cost[np] == 1e7: +                cost[np] = c + 1 +                heappush(Q, (c + 1, np)) -        d[a].append([b, 1]) +        d[a].append(b) -        d[a] = [[b, 1]] +        d[a] = [b] -        d[b].append([a, 1]) +        d[b].append(a) -        d[b] = [[a, 1]] -x = DIJKSTRA(1, d)[1:] -y = DIJKSTRA(n, d)[1:] -# print(x) -# print(y) +        d[b] = [a] +x = BFS(1, d)[1:] +y = BFS(n, d)[1:] +# print(x,y) -for i in range(n): -    if x[i] <= y[i]: +for s, t in zip(x, y): +    if s <= t: