#include <iostream>
#include <bits/stdc++.h>
#define endl '\n'
#define ll long long
using namespace std;
const int N =200010,M=400010;
int h[N],e[M],ne[M],w[M],idx,v[N],f[N],n;
inline void add(int a,int b,int c){
e[idx]=b,ne[idx]=h[a],w[idx]=c,h[a]=idx++;
}
inline void dfs_1(int u,int fa){
for(int i=h[u];~i;i=ne[i]){
int j=e[i];
if(j==fa) continue;
if(w[i]!=j) f[u]++;//cout << u << " "<< endl;
dfs_1(j,u);
f[u]+=f[j];
}
}
inline void dfs_2(int u,int fa){
for(int i=h[u];~i;i=ne[i]){
int j=e[i];
if(j==fa) continue;
if(w[i]==j) v[j]=v[u]+f[u]-f[j]+1;
else v[j]=v[u]+f[u]-f[j]-1;
// cout << j << " "<< v[j] << " " <<endl;
dfs_2(j,u);
}
}
signed main(){
ios_base::sync_with_stdio(false);cin.tie(nullptr),cout.tie(nullptr);
memset(h,-1,sizeof h);
cin>>n;
for(int i=0;i<n-1;i++){
int a,b,c; cin>>a>>b;
add(a,b,b);
add(b,a,b);
}
dfs_1(1,-1);
// for(int i=1;i<=n;i++) cout << f[i] << " ";
dfs_2(1,-1);
int ans=1<<30;
for(int i=1;i<=n;i++){
//cout << v[i]+f[i] << " ";
if(v[i]+f[i]<ans){
ans=v[i]+f[i];
}
}
cout << ans <<endl;
for(int i=1;i<=n;i++){
// cout << ans << " ";
if(ans==v[i]+f[i]) cout << i << " ";
}
return 0;
}