#include <bits/stdc++.h>
using namespace std;
int n, resp[200005];
vector<pair<long long, long long> > vec[200005];
void dfs(int x, int p) {
  for (pair<long long, long long> i : vec[x]) {
    if (i.first == p) continue;
    dfs(i.first, x);
    resp[x] += resp[i.first] + i.second;
  }
}
void re(int x, int p, int c) {
  resp[x] += c;
  for (pair<long long, long long> i : vec[x]) {
    if (i.first == p) continue;
    re(i.first, x, resp[x] - (resp[i.first] + i.second) + (1 - i.second));
  }
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  cin >> n;
  for (int i = 1; i < n; i++) {
    int a, b;
    cin >> a >> b;
    vec[a].push_back({b, 0});
    vec[b].push_back({a, 1});
  }
  dfs(1, 0);
  re(1, 0, 0);
  int maior = 0x3f3f3f3f;
  for (int i = 1; i <= n; i++) {
    maior = min(maior, resp[i]);
  }
  cout << maior << '\n';
  for (int i = 1; i <= n; i++) {
    if (maior == resp[i]) {
      cout << i << " ";
    }
  }
  return 0;
}
