#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> e[200010];
int to[400010];
int pr[200010];
bool vtd[200010];
int ans[200010];
int dfs(int p) {
  int dp = 0;
  vtd[p] = true;
  for (int i = 0; i < e[p].size(); i++) {
    if (vtd[to[e[p][i]]]) continue;
    dp += dfs(to[e[p][i]]);
    if (pr[e[p][i] / 2] != p) dp++;
  }
  return dp;
}
void ddfs(int p, int as) {
  if (vtd[p]) return;
  vtd[p] = true;
  for (int i = 0; i < e[p].size(); i++) {
    if (pr[e[p][i] / 2] == p)
      ddfs(to[e[p][i]], as + 1);
    else
      ddfs(to[e[p][i]], as - 1);
  }
  ans[p] = as;
}
int main() {
  cin >> n;
  int s, t;
  for (int i = 0; i < n - 1; i++) {
    cin >> s >> t;
    e[s].push_back(i * 2);
    to[i * 2] = t;
    e[t].push_back(i * 2 + 1);
    to[i * 2 + 1] = s;
    pr[i] = s;
  }
  memset(vtd, false, sizeof(vtd));
  ans[1] = dfs(1);
  memset(vtd, false, sizeof(vtd));
  ddfs(1, ans[1]);
  int mn = 1e9;
  for (int i = 1; i <= n; i++) mn = min(mn, ans[i]);
  cout << mn << endl;
  for (int i = 1; i <= n; i++)
    if (ans[i] == mn) cout << i << " ";
  return 0;
}
