/*
ID:yaoxinw1
TASK:xxxx
LANG:C++
*/
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <utility>
#include <valarray>
#include <vector>
using namespace std;
vector<int>mp[100005];
bool vis[100005];
int dist[2][100005];
void dfs(int now,int dis[])
{
	vis[now]=true;
	for(int i=0;i<mp[now].size();i++)
	{
		if(vis[mp[now][i]])
		continue;
		dis[mp[now][i]]=dis[now]+1;
		dfs(mp[now][i],dis);
	}
}
int main()
{
	memset(vis,0,sizeof vis);
	int n;
	scanf("%d",&n);
	for(int i=0;i<n-1;i++)
	{
		int a,b;
		scanf("%d%d",&a,&b);
		mp[a].push_back(b);
		mp[b].push_back(a);
	}
	dfs(1,dist[0]);
	memset(vis,0,sizeof vis);
	dfs(n,dist[1]);
	int c1=0,c2=0;
	for(int i=1;i<=n;i++)
	{
		if(dist[0][i]<=dist[1][i])
		c1++;
		else
		c2++;
	}
	if(c1>c2)
	{
		cout<<"Fennec"<<endl;
	}
	else
	{
		cout<<"Snuke"<<endl;
	}
	return 0;
}