#include <bits/stdc++.h>
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define ll long long
#define ld long double
#define pb push_back
using namespace std;
const int m=2e5+1;
vector<vector<int>>v;
map<int,set<int>>inv;
int vis[m],dp[m];
void dfs(int node)
{
vis[node]=1;
for(auto child:v[node])
{
if(!vis[child])
{
dfs(child);
dp[node]+=dp[child];
if(inv[node].count(child))
dp[node]++;
}
}
}
void dfs1(int node)
{
vis[node]=1;
int first=-1;
for(auto child:v[node])
{
if(vis[child])
first=child;
}
if(first!=-1)
{dp[node]=dp[first];
if(inv[first].count(node))
dp[node]--;
else dp[node]++;
}
for(auto child:v[node])
{
if(!vis[child])
{
dfs1(child);
}
}
}
int main() {
fast
int n,x,y;
cin>>n;
v.resize(n+1);
for(int i=0;i<n-1;i++)
{
cin>>x>>y;
v[x].pb(y);
v[y].pb(x);
inv[y].insert(x);
}
dfs(1);
memset(vis,0,sizeof vis);
dfs1(1);
int mn=n;
for(int i=1;i<=n;i++) mn=min(mn,dp[i]);
vector<int>ans;
for(int i=1;i<=n;i++)
{
if(dp[i]==mn)
ans.pb(i);
}
sort(ans.begin(),ans.end());
cout<<mn<<endl;
for(auto i:ans) cout<<i<<" ";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmFzdCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLGNpbi50aWUoMCksY291dC50aWUoMCk7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBwYiBwdXNoX2JhY2sKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IG09MmU1KzE7CnZlY3Rvcjx2ZWN0b3I8aW50Pj52OwptYXA8aW50LHNldDxpbnQ+PmludjsKaW50IHZpc1ttXSxkcFttXTsKdm9pZCBkZnMoaW50IG5vZGUpCiAgICAgewogICAgICAgdmlzW25vZGVdPTE7CiAgICAgICBmb3IoYXV0byBjaGlsZDp2W25vZGVdKQogICAgICAgewogICAgICAgICAgIGlmKCF2aXNbY2hpbGRdKQogICAgICAgICAgIHsKICAgICAgICAgICAgICAgZGZzKGNoaWxkKTsKICAgICAgICAgICAgICAgICAgZHBbbm9kZV0rPWRwW2NoaWxkXTsKICAgICAgICAgICAgICAgaWYoaW52W25vZGVdLmNvdW50KGNoaWxkKSkKICAgICAgICAgICAgICAgZHBbbm9kZV0rKzsKICAgICAgICAgICB9CiAgICAgICB9CiAgICAgfQp2b2lkIGRmczEoaW50IG5vZGUpCnsKICAgIHZpc1tub2RlXT0xOwogICAgaW50IGZpcnN0PS0xOwogICAgZm9yKGF1dG8gY2hpbGQ6dltub2RlXSkKICAgIHsKICAgICAgICBpZih2aXNbY2hpbGRdKQogICAgICAgICAgICBmaXJzdD1jaGlsZDsKICAgIH0KICAgICAgICBpZihmaXJzdCE9LTEpCiAgICAgICAge2RwW25vZGVdPWRwW2ZpcnN0XTsKICAgICAgICAgICAgaWYoaW52W2ZpcnN0XS5jb3VudChub2RlKSkKICAgICAgICAgICAgICAgIGRwW25vZGVdLS07CiAgICAgICAgICAgIGVsc2UgZHBbbm9kZV0rKzsKICAgICAgICB9CiAgICBmb3IoYXV0byBjaGlsZDp2W25vZGVdKQogICAgewogICAgICAgIGlmKCF2aXNbY2hpbGRdKQogICAgICAgIHsKICAgICAgICAgICAgZGZzMShjaGlsZCk7CiAgICAgICAgfQogICAgfQp9CmludCBtYWluKCkgewogZmFzdAppbnQgbix4LHk7CmNpbj4+bjsKdi5yZXNpemUobisxKTsKZm9yKGludCBpPTA7aTxuLTE7aSsrKQp7CiAgICBjaW4+Png+Pnk7CiAgICB2W3hdLnBiKHkpOwogICAgdlt5XS5wYih4KTsKICAgIGludlt5XS5pbnNlcnQoeCk7Cn0KZGZzKDEpOwptZW1zZXQodmlzLDAsc2l6ZW9mIHZpcyk7CmRmczEoMSk7CmludCBtbj1uOwpmb3IoaW50IGk9MTtpPD1uO2krKykgbW49bWluKG1uLGRwW2ldKTsKdmVjdG9yPGludD5hbnM7CmZvcihpbnQgaT0xO2k8PW47aSsrKQp7CiAgICBpZihkcFtpXT09bW4pCiAgICAgICAgYW5zLnBiKGkpOwp9CnNvcnQoYW5zLmJlZ2luKCksYW5zLmVuZCgpKTsKY291dDw8bW48PGVuZGw7CmZvcihhdXRvIGk6YW5zKSBjb3V0PDxpPDwiICI7CiByZXR1cm4gMDsKfQ==