#include "pch.h"
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> a[11];
int p[11];
int main()
{
	int n, k; 
	cin >> n >> k;
	for (int i = 0; i < k; i++) {
		int x; cin >> x;
		for (int j = 0; j < x; j++) {
			int y; cin >> y;
			a[i].push_back(y);
		}
	}

	for (int i = 0; i < k; i++)cin >> p[i];

	int ans = 0;

	for (int i = 1; i < (1 << n); i++) {
		bool f = false;
		for (int j = 0; j < k; j++) {
			int cnt = 0;
			for (int o = 0; o < a[j].size(); o++) {
				if (i & (1 << (a[j][o] - 1))) {
					cnt++;
				}
			}
			if (cnt == 0) { f = true; break; }
			cnt %= 2;
			if (cnt != p[j]) {
				f = true; break;
			}
		}
		if (!f)ans++;
	}
	cout << ans << '\n';
}
// 335
