#include <bits/stdc++.h>
using namespace std;
const int M = 200005;
int n, f[M], ans;
int tot, head[M], Next[M * 2], vet[M * 2], len[M * 2];
void add(int a, int b, int c) {
  Next[++tot] = head[a], vet[tot] = b, len[tot] = c;
  head[a] = tot;
}
void dfs1(int x, int pre) {
  for (int i = head[x]; i; i = Next[i]) {
    int y = vet[i], z = len[i];
    if (y == pre) continue;
    dfs1(y, x);
    f[x] += f[y] + z;
  }
}
void dfs2(int x, int pre) {
  for (int i = head[x]; i; i = Next[i]) {
    int y = vet[i], z = len[i];
    if (y == pre) continue;
    if (z)
      z = -1;
    else
      z = 1;
    f[y] = f[x] + z;
    ans = min(ans, f[y]);
    dfs2(y, x);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 2; i <= n; i++) {
    int a, b;
    scanf("%d%d", &a, &b);
    add(a, b, 0);
    add(b, a, 1);
  }
  dfs1(1, 0);
  ans = f[1];
  dfs2(1, 0);
  printf("%d\n", ans);
  for (int i = 1; i <= n; i++)
    if (f[i] == ans) printf("%d ", i);
  return 0;
}
