#include #include #include using namespace std; int main() { int n; cin >> n; vector a(n); for (int i = 0; i < n; ++i) cin >> a[i]; vector> bs; vector> val; for (int i = 0; i < n; ++i) { long long tmp = a[i]; int siz = bs.size(); vector ids; for (int j = 0; j < siz; ++j) { if (tmp > (tmp ^ bs[j].first)) { tmp ^= bs[j].first; ids.push_back(j); } } if (tmp == 0) { vector cnt(n); cnt[i] = 1; for (int v : ids) { for (auto id : val[v]) { cnt[id] ^= 1; } } vector ans; for (int j = 0; j < n; ++j) if (cnt[j]) ans.push_back(j + 1); cout << ans.size() << endl; for (auto v : ans) cout << v << ' '; cout << endl; return 0; } else { vector cnt(n); cnt[i] = 1; for (auto v : ids) { for (auto id : val[v]) { cnt[id] ^= 1; } } vector tmpid; for (int j = 0; j < n; ++j) { if (cnt[j]) { tmpid.push_back(j); } } val.push_back(tmpid); bs.emplace_back(tmp, i); } } cout << -1 << endl; }