#include <bits/stdc++.h>
#define rep(i, n) for (int i = 0; i < (n); i++)
using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<int> a(n);
    vector<int> p(15);

    rep(i, m) {
        int k; cin >> k;
        rep(j, k) {
            int s; cin >> s;
            --s;
            // i番目のスイッチでORをとる
            a[s] |= 1 << i;
        }
    }

    int p = 0;
    rep (i, m) {
        int x;
        cin >> x;

        p |= x<<i;
    }
    int ans = 0;
    // 2^n通りの全探索
    rep (s, (1<<n)) {
        int t = 0;
        rep (i, n) {
            // sのi番目のフラグがたっているかどうか
            if (s>>i & 1) {
                t ^= a[i];
            }
        }
        if (t == p) {
            ++ans;
        }
    }
    cout << ans << endl;
}