#include <stdio.h>#include <stdlib.h>#include <string.h>#define min(x,y) ((x)<(y)?(x):(y))typedef struct node{ int Count; int Value; int Next[ 10 ];}node;node Node[ 1510 ];int Root;typedef struct answ{ int sum0; int sum1;}Answ;Answ Save;Answ dp( int Root ){ Answ an; an.sum0 = 0; an.sum1 = 1; if ( Node[ Root ].Count ) { for ( int i = 0 ; i < Node[ Root ].Count ; ++ i ) { Save = dp( Node[ Root ].Next[ i ] ); an.sum0 += Save.sum1; an.sum1 += min( Save.sum0, Save.sum1 ); } } return an;}int main(){ int n,a,m,b; while ( scanf("%d",&n) != EOF ) { Root = -1; memset( Node, 0, sizeof( Node ) ); for ( int i = 0 ; i < n ; ++ i ) { scanf("%d:(%d)",&a,&m); if ( Root == -1 ) Root = a; Node[ a ].Count = m; Node[ a ].Value = a; for ( int j = 0 ; j < m ; ++ j ) { scanf("%d",&b); Node[ a ].Next[ j ] = b; } } Answ answer = dp( Root ); printf("%dn",min( answer.sum0, answer.sum1 )); } return 0;}