import sys

sys.setrecursionlimit(10**6)

n = int(eval(input()))

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

for _ in range(n-1):

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

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

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

pre = [None]*n

def dfs(node, p_node=-1):

    for c_node in graph[node]:

        if c_node==p_node:

            continue

        pre[c_node] = node

        dfs(c_node, node)

dfs(0)

path = [n-1]

now = n-1

while now>0:

    now = pre[now]

    path.append(now)

snuke = path[len(path)//2-1]

fennec = path[len(path)//2]

def dfs2(node, p_node):

    cnt = 1

    for c_node in graph[node]:

        if c_node==p_node:

            continue

        cnt += dfs2(c_node, node)

    return cnt

print(('FSennunkeec'[dfs2(fennec, snuke)<=dfs2(snuke, fennec)::2]))
from collections import deque

n = int(eval(input()))

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

for _ in range(n-1):

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

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

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

cnt = [1, 1]

q = deque([(0, 0), (n-1, 1)])

seen = [False]*n

seen[0] = seen[n-1] = True

while q:

    node, turn = q.popleft()

    for c_node in graph[node]:

        if seen[c_node]:

            continue

        seen[c_node] = True

        cnt[turn] += 1

        q.append((c_node, turn))

print(('FSennunkeec'[cnt[1]>=cnt[0]::2]))
import sys

sys.setrecursionlimit(10**6)
n = int(eval(input()))
graph = [[] for _ in range(n)]
for _ in range(n - 1):
    a, b = list(map(int, input().split()))
    graph[a - 1].append(b - 1)
    graph[b - 1].append(a - 1)
pre = [None] * n


def dfs(node, p_node=-1):
    for c_node in graph[node]:
        if c_node == p_node:
            continue
        pre[c_node] = node
        dfs(c_node, node)


dfs(0)
path = [n - 1]
now = n - 1
while now > 0:
    now = pre[now]
    path.append(now)
snuke = path[len(path) // 2 - 1]
fennec = path[len(path) // 2]


def dfs2(node, p_node):
    cnt = 1
    for c_node in graph[node]:
        if c_node == p_node:
            continue
        cnt += dfs2(c_node, node)
    return cnt


print(("FSennunkeec"[dfs2(fennec, snuke) <= dfs2(snuke, fennec) :: 2]))

from collections import deque

n = int(eval(input()))
graph = [[] for _ in range(n)]
for _ in range(n - 1):
    a, b = list(map(int, input().split()))
    graph[a - 1].append(b - 1)
    graph[b - 1].append(a - 1)
cnt = [1, 1]
q = deque([(0, 0), (n - 1, 1)])
seen = [False] * n
seen[0] = seen[n - 1] = True
while q:
    node, turn = q.popleft()
    for c_node in graph[node]:
        if seen[c_node]:
            continue
        seen[c_node] = True
        cnt[turn] += 1
        q.append((c_node, turn))
print(("FSennunkeec"[cnt[1] >= cnt[0] :: 2]))

-import sys +from collections import deque -sys.setrecursionlimit(10**6) -pre = [None] * n - - -def dfs(node, p_node=-1): +cnt = [1, 1] +q = deque([(0, 0), (n - 1, 1)]) +seen = [False] * n +seen[0] = seen[n - 1] = True +while q: +    node, turn = q.popleft() -        if c_node == p_node: +        if seen[c_node]: -        pre[c_node] = node -        dfs(c_node, node) - - -dfs(0) -path = [n - 1] -now = n - 1 -while now > 0: -    now = pre[now] -    path.append(now) -snuke = path[len(path) // 2 - 1] -fennec = path[len(path) // 2] - - -def dfs2(node, p_node): -    cnt = 1 -    for c_node in graph[node]: -        if c_node == p_node: -            continue -        cnt += dfs2(c_node, node) -    return cnt - - -print(("FSennunkeec"[dfs2(fennec, snuke) <= dfs2(snuke, fennec) :: 2])) +        seen[c_node] = True +        cnt[turn] += 1 +        q.append((c_node, turn)) +print(("FSennunkeec"[cnt[1] >= cnt[0] :: 2]))