#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > g[200005];
int ans[200005], cost[200005];
void dfs(int v, int p = -1) {
  for (int i = 0; i < g[v].size(); i++) {
    if (g[v][i].first == p) continue;
    int u = g[v][i].first;
    dfs(u, v);
    int val = g[v][i].second;
    cost[v] += (val + cost[u]);
  }
}
void solve(int v, int p = -1) {
  for (int i = 0; i < g[v].size(); i++) {
    if (g[v][i].first == p) continue;
    int u = g[v][i].first;
    int val = g[v][i].second;
    if (val == 0)
      ans[u] = ans[v] + 1;
    else
      ans[u] = ans[v] - 1;
    solve(u, v);
  }
}
int main() {
  int n, i, a, b, count = 0;
  cin >> n;
  for (i = 0; i < n - 1; i++) {
    cin >> a >> b;
    g[a].push_back(make_pair(b, 0));
    g[b].push_back(make_pair(a, 1));
  }
  dfs(1);
  ans[1] = cost[1];
  a = 10000000;
  solve(1);
  for (i = 1; i <= n; i++) {
    a = min(a, ans[i]);
  }
  cout << a << endl;
  for (i = 1; i <= n; i++) {
    if (ans[i] == a) cout << i << " ";
  }
}
