#include <bits/stdc++.h>
using namespace std;
long long vis[200009], dp[200009];
std::vector<pair<long long, long long> > v[200009];
long long dfs(long long x) {
  vis[x] = 1;
  long long s = 0;
  for (auto i : v[x]) {
    if (!vis[i.first]) s += (i.second + dfs(i.first));
  }
  return s;
}
void dfs1(long long x) {
  vis[x] = 1;
  for (auto i : v[x]) {
    if (!vis[i.first]) {
      if (!i.second)
        dp[i.first] = dp[x] + 1;
      else
        dp[i.first] = dp[x] - 1;
      dfs1(i.first);
    }
  }
}
signed main() {
  ios_base::sync_with_stdio(false), cin.tie(NULL);
  long long i, j, n;
  cin >> n;
  for (i = 1; i < n; i++) {
    long long a, b;
    cin >> a >> b;
    v[a].push_back({b, 0});
    v[b].push_back({a, 1});
  }
  dp[1] = dfs(1);
  memset(vis, 0, sizeof(vis));
  dfs1(1);
  long long x = *min_element(dp + 1, dp + n + 1);
  cout << x << "\n";
  for (i = 1; i <= n; i++)
    if (dp[i] == x) cout << i << " ";
}
