#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000010;
int dp[maxn][2];
int n, cnt = 1, head[maxn], to[maxn], nxt[maxn], val[maxn];
inline void add(int x, int y, int z) {
  nxt[++cnt] = head[x];
  head[x] = cnt;
  to[cnt] = y;
  val[cnt] = z;
}
void dfs(int x, int fa) {
  for (int i = head[x]; i; i = nxt[i]) {
    if (to[i] == fa) continue;
    dfs(to[i], x);
    dp[x][0] += dp[to[i]][0] + val[i];
  }
}
void dfs1(int x, int fa) {
  for (int i = head[x]; i; i = nxt[i]) {
    if (to[i] == fa) continue;
    dp[to[i]][1] = dp[x][0] - dp[to[i]][0] - val[i] + dp[x][1] + val[i ^ 1];
    dfs1(to[i], x);
  }
}
int st[maxn], top;
int main() {
  cin >> n;
  for (int i = 1, x, y; i < n; ++i) {
    cin >> x >> y;
    add(x, y, 0);
    add(y, x, 1);
  }
  dfs(1, 1);
  dfs1(1, 1);
  int tot = 1e9;
  for (int i = 1; i <= n; ++i) {
    tot = min(tot, dp[i][0] + dp[i][1]);
  }
  for (int i = 1; i <= n; ++i) {
    if (dp[i][0] + dp[i][1] == tot) {
      st[++top] = i;
    }
  }
  cout << tot << endl;
  for (int i = 1; i <= top; ++i) {
    cout << st[i] << " ";
  }
  return 0;
}
