#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000 * 1000 + 10;
vector<pair<int, bool>> adj[MAXN];
int c[MAXN];
int h[MAXN];
int d[MAXN];
bool mark[MAXN];
long long int mod = 1000 * 1000 * 1000 + 7;
void dfs(int u) {
  mark[u] = true;
  for (int i = 0; i < adj[u].size(); i++) {
    int x = adj[u][i].first;
    bool b = adj[u][i].second;
    if (!mark[x]) {
      h[x] += h[u];
      d[x] += d[u];
      if (b) {
        c[u]++;
        d[x]++;
      } else {
        h[x]++;
      }
      dfs(x);
      c[u] += c[x];
    }
  }
  return;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  int n;
  cin >> n;
  for (int i = 0; i < n - 1; i++) {
    int x, y;
    cin >> x >> y;
    x--;
    y--;
    adj[x].push_back({y, 0});
    adj[y].push_back({x, 1});
  }
  dfs(0);
  int mn = c[0] + h[0];
  for (int i = 0; i < n; i++) {
    mn = min(c[0] + h[i] - d[i], mn);
  }
  cout << mn << endl;
  for (int i = 0; i < n; i++) {
    if (c[0] + h[i] - d[i] == mn) cout << i + 1 << ' ';
  }
  cout << endl;
  return 0;
}
