#include <bits/stdc++.h>
using namespace std;

class Bitset {
public:
    Bitset(int n=0) : data((n + 63)/64) {}
    Bitset(Bitset const& o) : data(o.data) {}

    Bitset& operator^=(Bitset const& o) {
        for (auto i = 0u; i < data.size(); i++)
            data[i] ^= o.data[i];
        return *this;
    }

    bool check(int idx) const {
        return data[idx/64] & (1LL << (idx%64));
    }

    void set(int idx) {
        data[idx/64] |= (1LL << (idx%64));
    }

    int first_set() const {
        for (auto i = 0u; i < data.size(); i++) {
            if (data[i] == 0)
                continue;
            int idx = 64 * i; 
            auto bits = data[i];
            while (!(bits & 1)) {
                idx++;
                bits >>= 1;
            }
            return idx;
        }
        return -1;
    }

private:
    vector<long long> data;
};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;
    vector<vector<int>> soups(n);
    int base_soups = 0;
    for (int i = 0; i < n; i++) {
        int p;
        cin >> p;
        soups[i].resize(p);
        for (auto& x : soups[i]) {
            cin >> x;
            x--;
        }
        base_soups += p == 0;
    }

    vector<Bitset> bss(n, base_soups);
    base_soups = 0;
    for (int i = 0; i < n; i++) {
        if (soups[i].empty()) {
            bss[i].set(base_soups);
            base_soups++;
        } else {
            for (auto j : soups[i])
                bss[i] ^= bss[j];
        }
    }

    int q;
    cin >> q;
    while (q --> 0) {
        int k;
        cin >> k;
        vector<int> v(k);
        for (auto& x : v) {
            cin >> x;
            x--;
        }

        vector<Bitset> ss(k);
        for (int i = 0; i < k; i++) {
            ss[i] = bss[v[i]];
        }

        int rank = 0;
        for (int i = 0; i < k; i++) {
            int idx = ss[i].first_set();
            if (idx == -1)
                break;
            rank++;
            for (int j = i + 1; j < k; j++) {
                if (ss[j].check(idx))
                    ss[j] ^= ss[i];
            }
        }
        cout << (rank < k);
    }
    cout << '\n';
}