#include <bits/stdc++.h>
using namespace std;
const int mxn = 2e5 + 5;
vector<pair<int, int> > adj[mxn];
int dis[mxn];
int dp[mxn];
void dfs(int u, int p) {
  for (auto it : adj[u]) {
    int v = it.first;
    int w = it.second;
    if (v == p) continue;
    dis[v] = w;
    dfs(v, u);
    dis[u] += dis[v];
  }
}
void solve(int u, int p) {
  for (auto it : adj[u]) {
    int v = it.first;
    int w = it.second;
    if (v == p) continue;
    if (w == 1)
      dp[v] = dp[u] - 1;
    else
      dp[v] = dp[u] + 1;
    solve(v, u);
  }
}
int main() {
  int n, m;
  cin >> n;
  for (int i = 1; i < n; i++) {
    int u, v;
    cin >> u >> v;
    adj[u].push_back({v, 0});
    adj[v].push_back({u, 1});
  }
  dfs(1, 0);
  dp[1] = dis[1];
  solve(1, 0);
  int mn = 1e8;
  vector<int> ans;
  for (int i = 1; i <= n; i++) mn = min(mn, dp[i]);
  for (int i = 1; i <= n; i++)
    if (dp[i] == mn) ans.push_back(i);
  cout << mn << '\n';
  for (auto it : ans) cout << it << ' ';
  cout << '\n';
  return 0;
}
