#include<bits/stdc++.h>

#define rep(i,N) for(int i=0;i<N;i++)
#define rep2(i,N) for(int i=1;i<=N;i++)
using namespace std;
long long  INF=1e18;
long long mod=1e9+7;


int main(){

    int n,m;
    cin>>n>>m;
    vector<vector<int>>light(m);
    rep(l,m){
        int k;
        cin>>k;
        rep(i,k){
            int sw;
            cin>>sw;
            light[l].emplace_back(sw-1);
        }
    }
    int p[m];
    rep(i,m)cin>>p[i];
    
    int switches[n];
    switches[0]=1;
    rep(i,n-1)switches[i+1]=switches[i]*2;

    int ans=0;

    for(int i=0;i<=(1<<n);i++){
        bool on[n]={};
        bool all_on=true;
        rep(k,n)if(i&switches[k])on[k]=true;

        rep(l,m){
            int now=0;
            for(auto sw:light[l]){
                if(on[sw])now++;
            }
            if(now%2!=p[l]){
                all_on=false;
                break;
            }
        }
        if(all_on)ans++;
        
        
    }

    cout<<ans<<endl;


    return 0;

}
/*


*/
