#include <bits/stdc++.h>
#define ll long long
#define MAX 1000000
using namespace std;
int main(){
ll n, m, c, a, va, va2;
cin>>n>>m;
vector<ll> q;
for (int i = 0; i < m; i++){
cin>>c;
va = 0;
for (int j = 0; j < c; j++){
cin>>a;
va = (va ^ (1LL<<(a - 1)));
}
q.push_back(va);
}
reverse(q.begin(), q.end());
int ti = (1<<m);
ll ans = -1, no = 10000, goal = (1LL<<n) - 1;
for (int i = ti - 1; i >= 0; i--){
if (__builtin_popcount(i) >= no) continue;
ll res = 0, cnt = 0;
for (int j = 0; j < m; j++){
va = i & (1<<j);
if (va != 0){
res ^= q[j];
cnt++;
}
}
if (res == goal){
if (cnt < no){
ans = i;
no = cnt;
}
}
}
cout<<no<<"\n";
for (int i = m - 1; i >= 0; i--){
va = ans & (1<<i);
if (va != 0) cout<<m - i<<" ";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |