import sys

sys.setrecursionlimit(1000000000)

input = sys.stdin.readline

n = int(eval(input()))

es=[[] for i in range(n)]

for i in range(n - 1):

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

   es[a - 1].append(b - 1)

   es[b - 1].append(a - 1)

def dfs0(v, d, p):

    if v == n - 1:

        return d

    for e in es[v]:

        if e != p:

            k = dfs0(e, d + 1, v)

            if k:

                if isinstance(k, int) and k // 2 == d:

                    return v, e

                return k

    return 0



def dfs1(v, p):

    if v == E:

        return 0

    cnt = 1

    for e in es[v]:

        if e != p:

            cnt += dfs1(e, v)

    return cnt



V, E = dfs0(0, 0, -1)

if  2*dfs1(0, -1) > n:

    print("Fennec")

else:

    print("Snuke")

import sys

sys.setrecursionlimit(1000000000)

input = sys.stdin.readline

from collections import deque 

n = int(eval(input()))

es=[[] for i in range(n)]

for i in range(n - 1):

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

   es[a - 1].append(b - 1)

   es[b - 1].append(a - 1)

INF = 1 << 32

d = [INF] * n

d[0] = 0

q = deque([0])

while q:

    v = q.popleft()

    for e in es[v]:

        if d[e] == INF:

            d[e] = d[v] + 1

            q.append(e)

d2 = [INF] * n

q.append(n - 1)

d2[n - 1] = 0

while q:

    v = q.popleft()

    for e in es[v]:

        if d2[e] == INF and d2[v] + 1 < d[e]:

            d2[e] = d2[v] + 1

            q.append(e)



print(("Fennec" if 2 * sum(1 for i in d2 if i < INF) < n else "Snuke"))
import sys

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


def dfs0(v, d, p):
    if v == n - 1:
        return d
    for e in es[v]:
        if e != p:
            k = dfs0(e, d + 1, v)
            if k:
                if isinstance(k, int) and k // 2 == d:
                    return v, e
                return k
    return 0


def dfs1(v, p):
    if v == E:
        return 0
    cnt = 1
    for e in es[v]:
        if e != p:
            cnt += dfs1(e, v)
    return cnt


V, E = dfs0(0, 0, -1)
if 2 * dfs1(0, -1) > n:
    print("Fennec")
else:
    print("Snuke")

import sys

sys.setrecursionlimit(1000000000)
input = sys.stdin.readline
from collections import deque

n = int(eval(input()))
es = [[] for i in range(n)]
for i in range(n - 1):
    a, b = list(map(int, input().split()))
    es[a - 1].append(b - 1)
    es[b - 1].append(a - 1)
INF = 1 << 32
d = [INF] * n
d[0] = 0
q = deque([0])
while q:
    v = q.popleft()
    for e in es[v]:
        if d[e] == INF:
            d[e] = d[v] + 1
            q.append(e)
d2 = [INF] * n
q.append(n - 1)
d2[n - 1] = 0
while q:
    v = q.popleft()
    for e in es[v]:
        if d2[e] == INF and d2[v] + 1 < d[e]:
            d2[e] = d2[v] + 1
            q.append(e)
print(("Fennec" if 2 * sum(1 for i in d2 if i < INF) < n else "Snuke"))

+from collections import deque + - - -def dfs0(v, d, p): -    if v == n - 1: -        return d +INF = 1 << 32 +d = [INF] * n +d[0] = 0 +q = deque([0]) +while q: +    v = q.popleft() -        if e != p: -            k = dfs0(e, d + 1, v) -            if k: -                if isinstance(k, int) and k // 2 == d: -                    return v, e -                return k -    return 0 - - -def dfs1(v, p): -    if v == E: -        return 0 -    cnt = 1 +        if d[e] == INF: +            d[e] = d[v] + 1 +            q.append(e) +d2 = [INF] * n +q.append(n - 1) +d2[n - 1] = 0 +while q: +    v = q.popleft() -        if e != p: -            cnt += dfs1(e, v) -    return cnt - - -V, E = dfs0(0, 0, -1) -if 2 * dfs1(0, -1) > n: -    print("Fennec") -else: -    print("Snuke") +        if d2[e] == INF and d2[v] + 1 < d[e]: +            d2[e] = d2[v] + 1 +            q.append(e) +print(("Fennec" if 2 * sum(1 for i in d2 if i < INF) < n else "Snuke"))