#include <iostream>
using namespace std;

int main () {
	int n, x;
	cin >> n >> x;
	int m = 1 << n;

	bool mark [m];
	fill (mark, mark + m, false);
	for (int i = 0; i < x; i++) {
		int s = 0, t, v;
		cin >> t;
		for (int j = 0; j < t; j++) {
			cin >> v;
			s |= 1 << (v - 1);
		}
		mark[s] = true;
	}

	for (int t = 0; t < m; t++)
		for (int k = 0; k < n; k++)
			if (t & (1 << k))
				mark[t] |= mark[t ^ (1 << k)];

	int total = 0;
	for (int s = 0; s < m; s++)
		if (mark[s])
			total += 1;
	cout << total << endl;

	return 0;
}
