func_code_string: #include <bits/stdc++.h>   const unsigned int Mod1 = 1000000009, Mod2 = 1000000007;   const unsigned int Bas1 = 12232, Bas2 = 14124;   struct mybit {     unsigned long long b[16];     mybit() { memset(b, 0, sizeof b); }     void clear() { memset(b, 0, sizeof b); }     void flip(int z) { b[z >> 6] ^= 1llu << (z & 63); }     unsigned int cnt() {       unsigned int ret = 0;       for (unsigned int j = 0u; j < 16u; ++j) ret += __builtin_popcount(b[j]);       return ret;     }     unsigned long long calc() {       unsigned int z1 = 0, z2 = 0;       for (unsigned int j = 0u; j < 16u; ++j)         z1 = (z1 + b[j] % Mod1 * Bas1) % Mod1,         z2 = (z2 + b[j] % Mod2 * Bas2) % Mod2;       return (unsigned long long)z1 << 32 | z2;     }     void operator^=(const mybit &p2) {       for (unsigned int j = 0u; j < 16u; ++j) b[j] ^= p2.b[j];     }   };   int N, S, Z, Q;   mybit bits[31], now;   std::unordered_map<unsigned long long, int> mp;   void DFS1(int st, int k) {     if (st > S) {       unsigned long long z = now.calc();       if (mp.find(z) != mp.end())         mp[z] = std::min(mp[z], k);       else         mp[z] = k;       return;     }     DFS1(st + 1, k);     now ^= bits[st];     DFS1(st + 1, k + 1);     now ^= bits[st];   }   int Ans;   void DFS2(int st, int k) {     if (st > Z) {       unsigned long long z = now.calc();       if (mp.find(z) != mp.end()) Ans = std::min(Ans, k + mp[z]);       return;     }     DFS2(st + 1, k);     now ^= bits[st];     DFS2(st + 1, k + 1);     now ^= bits[st];   }   int main() {     scanf( %d%d%d , &N, &S, &Q), Z = S / 3;     for (int i = 1; i <= S; ++i) {       unsigned int c, x;       scanf( %u , &c);       while (c--) {         scanf( %u , &x);         bits[i].flip(x - 1);       }     }     now.clear();     DFS1(Z + 1, 0);     while (Q--) {       now.clear();       unsigned int c, x;       scanf( %u , &c);       while (c--) {         scanf( %u , &x);         now.flip(x - 1);       }       Ans = S + 1;       DFS2(1, 0);       printf( %d n , Ans == S + 1 ? -1 : Ans);     }     return 0;   }   