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

int main(){
    // 入力
    int N, M; cin>>N>>M; // M:電球の種類, N:スイッチの数
    int ans=0;
    vector<vector<int>> swi(M); // 各電球に繋がれているスイッチ
    vector<int> p(M); // 各電球の点灯条件

    for(int i=0; i<M; i++){ // swi(M)を取得
        int k; cin>>k; // 繋がれているスイッチの個数
        for(int j=0; j<k; j++){ 
            int s; cin>>s; // 繋がれているスイッチ
            swi[i].push_back(s);
        }
    }

    for(int i=0;i<m;i++) cin>>p[i]; // 電球の点灯条件

    // bit全探索
    for(int bit=0; bit<(1<<n) ;bit++){ // 2^n通りの探索
        vector<int> s_cnt(m); // 各スイッチ数のカウント

        for(int j=0; j<N; j++){ // j番目のスイッチについて
            if(bit>>j&1){ // 2進数第j桁目が1の場合...
                for(int i=0; i<M; i++){ // 各電球の点灯判定
                    for(int k=0; k<swi[i].size(); k++){ // 入力スイッチの個数を数える
                        if(swi[i][k]==j+1) s_c[i]++;
                    }
                }
            }
        }
        for(int l=0;l<m;l++){
            s_c[l]%=2;
            if(s_c[l]!=p[l]) break;
            if(l==m-1){
                ans++;
            }
        }
    }
    cout<<ans<<endl;
}
/