#include <bits/stdc++.h>
using namespace std;
int n;
vector <int> v[50005];
bool vis[50005],vis2[50005];
int a[50005],ans=INT_MAX,fa[50005],s[50005];
int dfs(int x)
{
int ss=0;
if(vis[x])
return 0;
if(v[x].size()==1 && x!=1)
{
a[x]=1;
return 1;
}
vis[x]=1;
for(int i=0;i<v[x].size();i++)
a[x]+=dfs(v[x][i]);
vis[x]=0;
a[x]++;
return a[x];
}
void sbdfs(int x,int la)
{
if(vis2[x])
return;
vis2[x]=1;
fa[x]=la;
for(int i=0;i<v[x].size();i++)
sbdfs(v[x][i],x);
}
int main()
{
cin>>n;
for(int i=1;i<n;i++)
{
int x,y;
cin>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
sbdfs(1,1);
a[1]=dfs(1);
for(int i=1;i<=n;i++)
{
s[i]=n-a[i];
for(int j=0;j<v[i].size();j++)
if(v[i][j]!=fa[i])
s[i]=max(s[i],a[v[i][j]]);
ans=min(ans,s[i]);
}
for(int i=1;i<=n;i++)
if(s[i]==ans)
cout<<i<<' ';
return 0;
}