#include <bits/stdc++.h>
using namespace std;
const int maxn = 2 * 1000 * 1000 + 10;
vector<pair<int, bool> > e[maxn];
int n, mn = maxn, dp[maxn];
bool mark[maxn];
void dfs1(int v) {
  mark[v] = true;
  for (int i = 0; i < (int)e[v].size(); i++) {
    if (!mark[e[v][i].first]) {
      dfs1(e[v][i].first);
      dp[v] += (dp[e[v][i].first] + e[v][i].second);
    }
  }
}
void dfs2(int v) {
  mark[v] = true;
  mn = min(mn, dp[v]);
  for (int i = 0; i < (int)e[v].size(); i++) {
    int u = e[v][i].first;
    if (!mark[u]) {
      if (e[v][i].second == 1) dp[u] = dp[v] - 1;
      if (e[v][i].second == 0) dp[u] = dp[v] + 1;
      dfs2(u);
    }
  }
}
int main() {
  cin >> n;
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    e[a].push_back(make_pair(b, 0));
    e[b].push_back(make_pair(a, 1));
  }
  dfs1(0);
  for (int i = 0; i < maxn; i++) mark[i] = false;
  dfs2(0);
  cout << mn << endl;
  for (int i = 0; i < n; i++)
    if (dp[i] == mn) cout << i + 1 << ' ';
  cout << endl;
  return 0;
}
