#include <bits/stdc++.h>
using namespace std;
const int INF = 190000000;
const int MOD = 1e9 + 7;
vector<pair<int, int>> adj[200001];
int dp[200001];
void dfs(int node, int pa) {
  for (auto u : adj[node]) {
    if (u.first != pa) {
      dp[node] += u.second;
      dfs(u.first, node);
      dp[node] += dp[u.first];
    }
  }
}
int mini = INF;
int ret[200001];
void rer(int node, int pa) {
  int dpact = dp[node], dpot;
  mini = min(mini, dpact);
  ret[node] = dpact;
  for (auto u : adj[node]) {
    if (u.first == pa) continue;
    dpot = dp[u.first];
    dp[u.first] = dp[node] + (u.second == 0 ? 1 : -1);
    rer(u.first, node);
    dp[node] = dpact;
    dp[u.first] = dpot;
  }
}
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < int(n - 1); i++) {
    int u, v;
    cin >> u >> v;
    u--;
    v--;
    adj[u].push_back({v, 0});
    adj[v].push_back({u, 1});
  }
  dfs(0, -1);
  rer(0, 0);
  cout << mini << "\n";
  for (int i = 0; i < int(n); i++) {
    if (ret[i] == mini) cout << i + 1 << " ";
  }
}
