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

int main()
{
   int N,M; cin>>N>>M;
   vector<vector<int>> s(M);
   for(int i=0;i<M;i++){
      int k; cin>>k;
      while(k--){
         int a; cin>>a;
         s[i].push_back(a-1);
      }
   }
   vector<int> p(M);
   for(int i=0;i<M;i++) cin>>p[i];

   int ans=0;
   for(int S=0;S<(1<<N);S++){
      bool ok=true;
      for(int i=0;i<M;i++){
         int cnt=0;
         for(int j:s[i]) if(S>>j&1) cnt++;
         if(cnt%2!=p[i]) ok=false;
      }
      if(ok) ans++;
   }
   cout<<ans<<endl;
   return 0;
}

