#include <bits/stdc++.h>
using namespace std;
struct ok {
  int x;
  bool ch;
  ok(int x, bool ch) : x(x), ch(ch) {}
};
vector<ok> v[201000];
int n, ans[210000];
void dfs(int x, int par) {
  for (auto u : v[x])
    if (u.x != par) {
      ans[0] += (!u.ch);
      dfs(u.x, x);
    }
}
void dfsfind(int x, int par) {
  for (auto u : v[x])
    if (u.x == par) ans[x] = ans[par] + (pow(-1, u.ch));
  for (auto u : v[x])
    if (u.x != par) dfsfind(u.x, x);
}
int main() {
  cin >> n;
  for (int i = 0; i < n - 1; i++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    v[a].push_back(ok(b, 1));
    v[b].push_back(ok(a, 0));
  }
  dfs(0, -1);
  dfsfind(0, -1);
  int m = *min_element(ans, ans + n);
  cout << m << endl;
  for (int i = 0; i < n; i++)
    if (ans[i] == m) cout << i + 1 << " ";
  cout << endl;
  return 0;
}
