open Printf
open Scanf

type node = {p : int; cs : int list}

let id x = x

let rec remove e = function
    [] -> []
  | x::xs when x = e -> xs
  | x::xs -> x :: remove e xs
  
let spath tr n =
  let rec iter i ls =
    let p = tr.(i).p in
    if p = 0 then ls
    else iter p (p::ls)
  in iter n []

let count tr n =
  let rec iter i =
    let cs = tr.(i).cs in
    match cs with
      [] -> 1
    | xs -> List.fold_left (fun s j -> s + iter j) 1 xs
  in
  iter n
       
let () =
  let n = scanf "%d\n" id in
  let adj = Array.make n [] in
  let tree = Array.make n {p = -1; cs = []} in
  let rec read n =
    if n = 1 then ()
    else let i, j = scanf "%d %d\n" (fun x y -> (x-1, y-1)) in
         adj.(i) <- j :: adj.(i);
         adj.(j) <- i :: adj.(j);
         read (n-1)
  in
  let rec set_node p i =
    let cs = remove p adj.(i) in
    tree.(i) <- {p = p; cs = cs};
    List.iter (fun x -> set_node i x) cs
  in
  read n;
  set_node (-1) 0;
  let pt = spath tree (n-1) in
  let l = List.length pt in
  let w = (if l <= 1 then n-1 else List.nth pt ((l+1) / 2)) in
  let s = count tree w in
  printf "%s\n" (if s >= n - s then "Snuke" else "Fennec")
