#include #include #include #define rep(i, n) for(i = 0; i < n; i++) using namespace std; int n; vector et[100000]; int a[100000], b[100000]; int inV[100000]; int main() { int i; cin >> n; rep(i, n) { cin >> a[i] >> b[i]; a[i]--; b[i]--; et[a[i]].push_back(b[i]); et[b[i]].push_back(a[i]); inV[a[i]]++; inV[b[i]]++; } queue que; rep(i, n) { if (inV[i] == 1) { que.push(i); } } while (!que.empty()) { int v = que.front(); que.pop(); for (int nv : et[v]) { inV[nv]--; if (inV[nv] == 1) { que.push(nv); } } } vector ans; rep(i, n) { if (inV[a[i]] >= 2 && inV[b[i]] >= 2) { ans.push_back(i); } } cout << ans.size() << endl; rep(i, ans.size()) { cout << ans[i] + 1; if (i + 1 < ans.size()) cout << " "; } cout << endl; return 0; }