#include <bits/stdc++.h>
using namespace std;
map<string, int> m;
vector<vector<int>> v;
vector<int> ans;
int remake(int n, int prev) {
  for (int i = 0; i < v[n].size(); i++) {
    if (v[n][i] != prev) {
      if (remake(v[n][i], n) == -1) v[n].erase(v[n].begin() + i--);
    }
  }
  if (v[n].size() == 1 && m[to_string(n) + '-' + to_string(prev)] == 1)
    return -1;
  return 0;
}
void result(int n, int prev) {
  for (int i = 0; i < v[n].size(); i++) {
    if (v[n][i] != prev) {
      if (v[v[n][i]].size() == 1) {
        ans.push_back(v[n][i]);
      } else
        result(v[n][i], n);
    }
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  v.resize(n + 1);
  for (int i = 0; i < n - 1; i++) {
    int x, y, u;
    cin >> x >> y >> u;
    v[x].push_back(y);
    v[y].push_back(x);
    m[to_string(x) + '-' + to_string(y)] = u;
    m[to_string(y) + '-' + to_string(x)] = u;
  }
  remake(1, 0);
  result(1, 0);
  cout << ans.size() << '\n';
  for (int i = 0; i < ans.size(); i++) cout << ans[i] << ' ';
}
