#include <iostream>
#include <cstring>
#include <cmath>
#include <vector>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <sstream>
#include <stack>
#include <deque>
using namespace std;
#define ll long long
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define pi pair<int,int>
#define pii pair<pi,int>
#define sqr(x) ((x)*(x))
#define FOR for(int i=0;i<n;i++)for(int j=0;j<m;j++)
const int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
vector<int> sons[100001];
queue<int> q; 
int da[100001],db[100001];
bool v[100001];
int main(){
    int n,a,b,x,u;
    cin >> n;
    for(int i=1;i<=n-1;i++){
    cin >> a >> b;
    sons[a].push_back(b);
    sons[b].push_back(a);
    }
    a=1;
    b=n;    
    memset(v,0,sizeof(v));
    for(int i=1;i<=n;i++) da[i]=1e9;
    da[a]=0; v[a]=1; q.push(a);
    while(!q.empty()){
        x=q.front();
        for(int i=0;i<sons[x].size();i++){
                u=sons[x][i];
                if(!v[u]){
                                da[u]=da[x]+1;
                                v[u]=1;
                                q.push(u);
                                }}
                q.pop();
                }
    memset(v, 0, sizeof(v));
    for(int i=1;i<=n;i++) db[i]=1e9;
    db[b]=0; v[b]=1; q.push(b);
    while(!q.empty()){
        x=q.front();    
        for(int i=0;i<sons[x].size();i++){
        u=sons[x][i];
        if(!v[u]){
                db[u]=db[x]+1;
                v[u]=1;
                q.push(u);
        }}
        q.pop();
        }
        int snuke=0, fennec=0;        
    for(int i=1;i<=n;i++){
        if(da[i]>db[i]) snuke++;
        else if(da[i]<=db[i]) fennec++;
        }
    if(snuke>=fennec) cout << "Snuke" << endl;  
    else cout << "Fennec" << endl;
    //system("pause");
    return 0;
}
 


