#include<bits/stdc++.h>
using namespace std;
int main(){
    int N,a=0;
    cin>>N;
    vector<int>T(N,0),F(N,0);
    for(int i=0;i<N;++i){
        int A,X,Y;
        cin>>A;
        for(int j=0;j<A;++j){
            cin>>X>>Y;
            if(Y)T[i]|=1<<(X-1);
            else F[i]|=1<<(X-1);
        }
    }
    int iMax=(1<<N)-1;
    for(int i=1;i<=iMax;++i){
        int t=0,f=0;
        for(int j=0;j<N;++j){
            t|=T[j]*((i>>j)%2);
            f|=F[j]*((i>>j)%2);
        }
        if((t&i&iMax)==t && (f&~i&iMax)==f){
            a=max(a,__builtin_popcount(i));
        }
    }
    printf("%d",a);
}