#include<bits/stdc++.h> using namespace std; int n; vector<int> t[50005]; int m[50005];bool vis[50005]; int minn=INT_MAX,ans[50005],cnt; void dfs(int x) { vis[x]=true; int k=0; for(int i=0;i<t[x].size();i++){ if(vis[t[x][i]]==false){ dfs(t[x][i]); m[x]+=m[t[x][i]]; k=max(k,m[t[x][i]]); } } k=max(k,n-m[x]); if(k<minn){ cnt=1; ans[cnt]=x; } if(k==minn){ ans[++cnt]=x; } } int main(){ cin>>n; for(int i=1;i<=n;i++)m[i]=1; for(int i=1;i<=n-1;i++){ int u,v; cin>>u>>v; t[u].push_back(v); t[v].push_back(u); } dfs(1); for(int i=1;i<=cnt;i++){ cout<<ans[i]<<" "; } return 0; }