#include<bits/stdc++.h>
#define endl '\n'
#define INF (1 << 21)
#define ALL(c) (c).begin(), (c).end()
typedef long long ll;
typedef unsigned long long ull;
const int MOD = 1000000009;
using namespace std;
int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n, m;
  int k[15];
  int s[15][15];
  int p[15];
  int sw[15];
  bool jud;
  int ans = 0;  

  cin >> n >> m;
  for(int i = 0;i < m;i++){
    cin >> k[i];
    for(int j = 0;j < k[i];j++){
      cin >> s[i][j];
    }
  }

  for(int i = 0;i < m;i++){
    cin >> p[i];
  }

  for(int i = 0;i <= (1 << n);i++){
    int temp = i;
    jud = true;
    for(int j = 0;j < n;j++){
      sw[j] = temp % 2;
      temp /= 2;
    }
    
    for(int j = 0;j < m && jud;j++){
      int cnt = 0;
      
      for(int f = 0;f < k[j];f++){
	cnt += sw[s[j][f] - 1];
      }

      if(cnt % 2 != p[j]){
	jud = false;
      }
    }

    if(jud) ans++;
  }

  cout << ans << endl;
  return 0;
}
