#include <bits/stdc++.h>
using namespace std;
using i128 = __int128_t;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
if(!(cin >> n)) return 0;
vector<vector<pair<int,int>>> g(n+1);
for(int i=0;i<n-1;i++){
int a,b,w; cin>>a>>b>>w;
g[a].push_back({b,w});
g[b].push_back({a,w});
}
vector<int> par(n+1,-1), pw(n+1,0), order;
order.reserve(n);
stack<int> st; st.push(1); par[1]=0;
while(!st.empty()){
int u=st.top(); st.pop();
order.push_back(u);
for(auto [v,w]: g[u]) if(v!=par[u]){
par[v]=u; pw[v]=w; st.push(v);
}
}
vector<long long> sz(n+1,1);
vector<i128> downDist(n+1,0), downSq(n+1,0);
for(int i=n-1;i>=0;i--){
int u=order[i];
for(auto [v,w]: g[u]) if(v!=par[u]){
sz[u]+=sz[v];
downDist[u]+=downDist[v] + (i128)sz[v]*w;
downSq[u]+=downSq[v] + (i128)2*w*downDist[v] + (i128)sz[v]*(i128)w*w;
}
}
vector<i128> D(n+1,0), S(n+1,0);
D[1]=downDist[1]; S[1]=downSq[1];
for(int u: order){
for(auto [v,w]: g[u]) if(v!=par[u]){
D[v]=D[u] + (i128)w*((i128)n - 2*(i128)sz[v]);
i128 sumA = downDist[v] + (i128)sz[v]*w;
S[v]=S[u] + (i128)n*(i128)w*w + (i128)2*w*( D[u] - 2*sumA );
}
}
i128 best = S[1];
for(int i=2;i<=n;i++) if(S[i]<best) best=S[i];
vector<int> res;
for(int i=1;i<=n;i++) if(S[i]==best) res.push_back(i);
cout << res.size() << "\n";
for(size_t i=0;i<res.size();i++){
if(i) cout << ' ';
cout << res[i];
}
cout << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBpMTI4ID0gX19pbnQxMjhfdDsKCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKICAgIAogICAgaW50IG47CiAgICBpZighKGNpbiA+PiBuKSkgcmV0dXJuIDA7CiAgICB2ZWN0b3I8dmVjdG9yPHBhaXI8aW50LGludD4+PiBnKG4rMSk7CiAgICBmb3IoaW50IGk9MDtpPG4tMTtpKyspewogICAgICAgIGludCBhLGIsdzsgY2luPj5hPj5iPj53OwogICAgICAgIGdbYV0ucHVzaF9iYWNrKHtiLHd9KTsKICAgICAgICBnW2JdLnB1c2hfYmFjayh7YSx3fSk7CiAgICB9CgogICAgdmVjdG9yPGludD4gcGFyKG4rMSwtMSksIHB3KG4rMSwwKSwgb3JkZXI7CiAgICBvcmRlci5yZXNlcnZlKG4pOwogICAgc3RhY2s8aW50PiBzdDsgc3QucHVzaCgxKTsgcGFyWzFdPTA7CiAgICB3aGlsZSghc3QuZW1wdHkoKSl7CiAgICAgICAgaW50IHU9c3QudG9wKCk7IHN0LnBvcCgpOwogICAgICAgIG9yZGVyLnB1c2hfYmFjayh1KTsKICAgICAgICBmb3IoYXV0byBbdix3XTogZ1t1XSkgaWYodiE9cGFyW3VdKXsKICAgICAgICAgICAgcGFyW3ZdPXU7IHB3W3ZdPXc7IHN0LnB1c2godik7CiAgICAgICAgfQogICAgfQoKICAgIHZlY3Rvcjxsb25nIGxvbmc+IHN6KG4rMSwxKTsKICAgIHZlY3RvcjxpMTI4PiBkb3duRGlzdChuKzEsMCksIGRvd25TcShuKzEsMCk7CiAgICBmb3IoaW50IGk9bi0xO2k+PTA7aS0tKXsKICAgICAgICBpbnQgdT1vcmRlcltpXTsKICAgICAgICBmb3IoYXV0byBbdix3XTogZ1t1XSkgaWYodiE9cGFyW3VdKXsKICAgICAgICAgICAgc3pbdV0rPXN6W3ZdOwogICAgICAgICAgICBkb3duRGlzdFt1XSs9ZG93bkRpc3Rbdl0gKyAoaTEyOClzelt2XSp3OwogICAgICAgICAgICBkb3duU3FbdV0rPWRvd25TcVt2XSArIChpMTI4KTIqdypkb3duRGlzdFt2XSArIChpMTI4KXN6W3ZdKihpMTI4KXcqdzsKICAgICAgICB9CiAgICB9CgogICAgdmVjdG9yPGkxMjg+IEQobisxLDApLCBTKG4rMSwwKTsKICAgIERbMV09ZG93bkRpc3RbMV07IFNbMV09ZG93blNxWzFdOwogICAgZm9yKGludCB1OiBvcmRlcil7CiAgICAgICAgZm9yKGF1dG8gW3Ysd106IGdbdV0pIGlmKHYhPXBhclt1XSl7CiAgICAgICAgICAgIERbdl09RFt1XSArIChpMTI4KXcqKChpMTI4KW4gLSAyKihpMTI4KXN6W3ZdKTsKICAgICAgICAgICAgaTEyOCBzdW1BID0gZG93bkRpc3Rbdl0gKyAoaTEyOClzelt2XSp3OwogICAgICAgICAgICBTW3ZdPVNbdV0gKyAoaTEyOCluKihpMTI4KXcqdyArIChpMTI4KTIqdyooIERbdV0gLSAyKnN1bUEgKTsKICAgICAgICB9CiAgICB9CgogICAgaTEyOCBiZXN0ID0gU1sxXTsKICAgIGZvcihpbnQgaT0yO2k8PW47aSsrKSBpZihTW2ldPGJlc3QpIGJlc3Q9U1tpXTsKICAgIHZlY3RvcjxpbnQ+IHJlczsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSBpZihTW2ldPT1iZXN0KSByZXMucHVzaF9iYWNrKGkpOwoKICAgIGNvdXQgPDwgcmVzLnNpemUoKSA8PCAiXG4iOwogICAgZm9yKHNpemVfdCBpPTA7aTxyZXMuc2l6ZSgpO2krKyl7CiAgICAgICAgaWYoaSkgY291dCA8PCAnICc7CiAgICAgICAgY291dCA8PCByZXNbaV07CiAgICB9CiAgICBjb3V0IDw8ICJcbiI7CiAgICByZXR1cm4gMDsKfQo=