#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)
 
int main(){
 int N,M,i,j;
 cin >> N >> M;
 
 vector<vector<int>> s(M);
 vector<int> p(M);
 
 rep(j,M){
  int k; cin >> k;
  s[j].resize(k);
  rep(i,k){
   cin >>s[j][i];
   --s[j][i];
  }
 }
 rep(j,M){
 cin >> p[j];
 }
 
int c=0;
int ans=0;
 
rep(i,(1<<N)){
 bool ok = true;
 rep(j,M){
 c=0;
  for(int id : s[j]){
   if((i>>id) & 1) c++;
  }
  c=c%2;
  if(c != p[j]) ok=false;
 }
if(ok) ++ans;
}
 
cout << ans << endl;
 
return 0;
}