// Original C++ solution (slower):
/*****************

 *   I<3   C++   *

 *  IWANT ANYAC  *

 * ILOVEPROGRAM! *

 *IT'SINTERESTING*

 * ILOVEPROGRAM! *

 *  INCONTESTS   *

 *   GETSCORE    *

 *    ACCODE     *

 *     LETS      *

 *      GO       *

 *****************/

#include <algorithm>

#include <bitset>

#include <cassert>

#include <cctype>

#include <cmath>

#include <complex>

#include <cstdio>

#include <cstdlib>

#include <cstring>

#include <ctime>

#include <deque>

#include <fstream>

#include <functional>

#include <iomanip>

#include <iostream>

#include <list>

#include <map>

#include <numeric>

#include <queue>

#include <set>

#include <sstream>

#include <stack>

#include <string>

#include <utility>

#include <vector>

#define LL long long

#define pb push_back

#define pob pop_back

#define mp make_pair

#define FILL(a,v) memset((void*)a,v,sizeof(a))

#define FILL0(a) FILL(a,0)

#define FILL1(a) FILL(a,-1)

#define ALL(a) (a).begin(),(a).end()

#define Inf 1e9

#define Mod 1000000007

#define foreach(it,x) for(typeof(x.begin()) it=x.begin();it!=x.end();it++)

#define FOR(i,x) for(int i=0;i<x;i++)

#define RFOR(i,x) for(int i=x-1;i>=0;i--)

#define FFOR(i,a,b) for(int i=a;i<b;i++)

#define FRFOR(i,a,b) for(int i=a-1;i>=b;i--)

#define SZ(a) ((int)(a).size())

#define FI first

#define SE second

#define OVER(a) return puts(a),0

#define fastio ios::sync_with_stdio(0)

#define filei(f) freopen(f,"r",stdin)

#define fileo(f) freopen(f,"w",stdout)

#define MASK(a) (1<<(a))

#define MASKX(x,a) ((x)<<(a))

#define BIT(a,b) ((a>>b)&1)

using namespace std;

typedef pair<int,int> pii;

typedef unsigned long long UINT;

typedef unsigned int Uint;

typedef long long INT;

typedef pair<INT,INT> PII;

typedef stringstream sst;

typedef istringstream iss;

typedef vector<int> vint;

typedef vector<INT> VINT;

typedef vector<pii> vpii;

typedef vector<PII> VPII;

typedef priority_queue<int> pqi;

typedef priority_queue<INT> PQI;

typedef priority_queue<pii> pqp;

typedef priority_queue<PII> PQP;

typedef priority_queue<int,vint,greater<int> > xqi;

typedef priority_queue<INT,VINT,greater<INT> > XQI;

typedef priority_queue<pii,vpii,greater<pii> > xqp;

typedef priority_queue<PII,VPII,greater<PII> > XQP;



int n;

int d[100007];

vector<int> nei[100007];

int ceng[100007],shang[100007];



int cal_d(int la,int wh)

{

	int cnt=1;

	for(int i=0;i<SZ(nei[wh]);i++)

		if(nei[wh][i]!=la)

		{

			ceng[nei[wh][i]]=ceng[wh]+1;

			shang[nei[wh][i]]=wh;

			cnt+=cal_d(wh,nei[wh][i]);

		}

	d[wh]=cnt;

	return cnt;

}



int a,b;



int main()

{

	scanf("%d",&n);

	for(int i=0;i<n-1;i++)

	{

		scanf("%d%d",&a,&b);

		a--,b--;

		nei[a].push_back(b);

		nei[b].push_back(a);

	}

	cal_d(-1,0);

	int d4o=n-1;

	string mark;

	int guessed=(ceng[n-1]-1)/2;

	while(guessed--)d4o=shang[d4o];

	if(d[d4o]>=n-d[d4o])mark="Snuke";

	else mark="Fennec";

	cout<<mark<<endl;

	return 0;

}

// Optimized solution to the same problem (faster):
#include<iostream>

#include<cstdio>

using namespace std;

int n,a,b,cnt=0,id=0,ne[100005],in[100005],out[100005],cnt1,cnt2,fa[100005][20],len[100005];

struct node{

    int v,next;

}edge[400005];

inline int read(){

	char c=getchar();

	int x=0;

	for(;c>'9'||c<'0';) c=getchar();

	for(;c>='0'&&c<='9';){

		x=(x<<3)+(x<<1)+c-'0';

		c=getchar();

	}

	return x;

}

inline void add(int u,int v){

    edge[cnt]={v,ne[u]};

    ne[u]=cnt++;

    edge[cnt]={u,ne[v]};

    ne[v]=cnt++;

}

inline void dfs(int cur,int pre,int d){

    fa[cur][0]=pre;

    len[cur]=d;

    for(int i=1;i<20;i++)

        fa[cur][i]=fa[fa[cur][i-1]][i-1];

    in[cur]=++id;

    for(int i=ne[cur];i!=-1;i=edge[i].next){

        int v=edge[i].v;

        if(v==pre) continue;

        dfs(v,cur,d+1);

    }

    out[cur]=id;

}

int main(){

	n=read();

    for(int i=0;i<100005;i++) ne[i]=-1;

    for(int i=1;i<n;i++){

    	a=read(),b=read();

        add(a,b);

    }

    dfs(1,0,0);

    int tmp=(len[n]-1)>>1,now=n;

    for(int i=0;i<20;i++)

        if(tmp>>i&1) now=fa[now][i];

    cnt1=n-(out[now]-in[now]+1)-len[n]/2-1,cnt2=out[now]-in[now]+1-tmp-1;

    if(len[n]&1){

        if(cnt1<=cnt2) puts("Snuke");

        else puts("Fennec");

        return 0;

    }

    if(cnt2>cnt1) puts("Snuke");

    else puts("Fennec");

    return 0;

}

// Fastest known solution for this problem: