#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
int n, num[N];
int head[N], to[N << 1], nxt[N << 1], wv[N << 1], cnt;
void build(int a, int b, int c) {
  to[++cnt] = b;
  nxt[cnt] = head[a];
  wv[cnt] = c;
  head[a] = cnt;
}
int dfs(int u, int fr) {
  int ret = 0;
  for (int i = head[u]; i; i = nxt[i]) {
    int v = to[i];
    if (v == fr) continue;
    ret += dfs(v, u) + wv[i];
  }
  return ret;
}
void calc(int u, int fr) {
  for (int i = head[u]; i; i = nxt[i]) {
    int v = to[i];
    if (v == fr) continue;
    if (wv[i])
      num[v] = num[u] - 1;
    else
      num[v] = num[u] + 1;
    calc(v, u);
  }
}
int main() {
  scanf("%d", &n);
  int a, b;
  for (int i = 1; i < n; i++) {
    scanf("%d%d", &a, &b);
    build(a, b, 0);
    build(b, a, 1);
  }
  num[1] = dfs(1, 0);
  calc(1, 0);
  int ans = n + 1;
  for (int i = 1; i <= n; i++) ans = min(ans, num[i]);
  printf("%d\n", ans);
  for (int i = 1; i <= n; i++)
    if (ans == num[i]) printf("%d ", i);
  return 0;
}
