#include <bits/stdc++.h>
using namespace std;
const int MAXN=17;
int n,a[MAXN],ans,x[MAXN][MAXN],y[MAXN][MAXN],jud[MAXN];
int main () {
	scanf("%d",&n);
	for (int i=1;i<=n;i++) {
		scanf("%d",&a[i]);
		for (int j=1;j<=a[i];j++) {
			scanf("%d%d",&x[i][j],&y[i][j]);
		}
	}
	for (int i=0;i<(1<<n);i++) {
		memset(jud,0,sizeof(jud));
		int flg=0;
		for (int j=0;j<n;j++) {
			if (i&(1<<j)) {jud[j+1]=1,flg++;}
		}
		for (int j=1;j<=n;j++) {
			if (i&(1<<(j-1))) {
				for (int k=1;k<=a[j];k++) {
					if (jud[x[j][k]]^y[j][k]) {flg=0;break;}
				}
			}
		}
		ans=max(ans,flg);
	}
	printf("%d\n",ans);
	return 0;
}