# include <cstdio>
# include <iostream>
# include <string>
# include <cctype>
# include <vector>
# include <cstdlib>
# include <cstring>
# include <algorithm>
# include <iomanip>
# include <cmath>
# define ll long long
using namespace std ;
//const double INF=0x3f3f3f3f+1.0;
//const double eps=1e-6;
//const double PI=2.0*acos(0.0);
//const double pi=acos(-1.0) ;//也可以用cmath中的M_PI
/*
const int oo = 0x3f3f3f3f;
const ll OO = 0x3f3f3f3f3f3f3f3f;
const double eps = 1e-9;
void cmax(int& a, int b){ if (b > a)a = b; }
void cmin(int& a, int b){ if (b < a)a = b; }
void cmax(ll& a, ll b){ if (b > a)a = b; }
void cmin(ll& a, ll b){ if (b < a)a = b; }
void cmax(double& a, double b){ if (a - b < eps) a = b; }
void cmin(double& a, double b){ if (b - a < eps) a = b; }
void add(int& a, int b, int mod){ a = (a + b) % mod; }
void add(ll& a, ll b, ll mod){ a = (a + b) % mod; }*/

const int maxn=1e5+7 ;
vector<int> from[maxn] ;
//vector<int> to[maxn] ;
int d1[maxn] ;
int dn[maxn] ;
int n ;
int a,b ;

void dfs(int rt,int parent,int mode)
{
	for(int i=0;i<from[rt].size();i++)
	{
		int cur=from[rt][i] ;
		if(cur==parent)
		continue ;
		else if(mode==1&&cur==n)
		{
			continue ;
		}else if(mode!=1&&cur==1)
		{
			continue ;
		}
		
		if(mode==1)
		d1[cur]=d1[parent]+1  ;
		else
		dn[cur]=dn[parent]+1 ;
		
		dfs(cur,rt,mode) ;
	}
}

int main()
{
 	//ios::sync_with_stdio(false) ;
 	scanf("%d",&n) ;
 	memset(d1,0,sizeof(d1)) ;
 	memset(dn,0,sizeof(dn)) ; 
 	for(int i=1;i<=n-1;i++)
 	{
 		scanf("%d%d",&a,&b) ;
 		from[a].push_back(b) ;
 		from[b].push_back(a) ;
	}
	
	dfs(1,1,1) ;
	dfs(n,n,-1) ;
	int cnt1,cntn ;
	cnt1=0 ;
	cntn=0 ;
	for(int i=1;i<=n;i++)
	{
		if(d1[i]==0)
		{
			cntn++ ;
			continue ;
		}
		else if(dn[i]==0)
		{
			cnt1++ ;
			continue ;
		}
		
		if(d1[i]<=dn[i])
		cnt1++ ;
		else
		cntn++ ;
	}
	
	if(cnt1>=cntn)
	printf("Fennec\n") ;
	else
	printf("Snuke\n") ;
	return 0 ;
}

