#include <iostream>
#include <string>
#include <vector>
#include <cmath>
#include <algorithm>
 
using namespace std;
 
int main(){
    int N,M;
    cin>>N>>M;
    vector<vector<int>> array(M);
    vector<int> light(M);
    for(int i=0;i<M;i++){
        int k;
        cin>>k;
        array[i].resize(k);
         for(int j=0;j<k;j++){
            cin>>array[i][j];
            array[i][j]--;
        }
    }
    for(int i= 0;i<M;i++)cin>>light[i];
    int ans = 0;
    for(int i=0;i<(1<<N);i++){
        bool ok = 1;
        for(int j=0;j<M;j++){
            int c=0;
            for(int id;array[j];){
                if((i>>id)&1){
                    c++;
                }
            }
            c%=2;
            if(c != light[j])ok =0;
        }
        if(ok)ans++;
    }
    cout<<ans<<endl;
    
}