#include <bits/stdc++.h>
using namespace std;
void err(istream_iterator<string> it) {}
template <typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
  cout << *it << " = " << a << "\n";
  err(++it, args...);
}
const int MOD = 1e9 + 7, N = 2e5 + 5, B = 32;
vector<int> g[N];
vector<int> inv(N);
map<pair<int, int>, int> mp;
map<int, vector<int>> mpans;
void dfs(int u, int p) {
  for (auto v : g[u]) {
    if (v == p) continue;
    if (mp[{u, v}]) inv[v] += 1;
    dfs(v, u);
    inv[u] += inv[v];
  }
}
void dfs1(int u, int p, int temp) {
  mpans[temp].push_back(u);
  for (auto v : g[u]) {
    if (v == p) continue;
    int v1;
    if (mp[{u, v}])
      v1 = -1;
    else
      v1 = 1;
    dfs1(v, u, temp + v1);
  }
}
void solve() {
  int n;
  cin >> n;
  for (int i = 1; i < n; i++) {
    int x, y;
    cin >> x >> y;
    mp[{x, y}] = 0;
    mp[{y, x}] = 1;
    g[x].push_back(y);
    g[y].push_back(x);
  }
  dfs(1, 0);
  dfs1(1, 0, inv[1]);
  auto xx = *mpans.begin();
  cout << xx.first << "\n";
  sort(xx.second.begin(), xx.second.end());
  for (auto r : xx.second) cout << r << " ";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  solve();
}
