output_description: Print the maximum possible number of honest persons among the N people.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1
      x_{11} y_{11}
      x_{12} y_{12}
      :
      x_{1A_1} y_{1A_1}
      A_2
      x_{21} y_{21}
      x_{22} y_{22}
      :
      x_{2A_2} y_{2A_2}
      :
      A_N
      x_{N1} y_{N1}
      x_{N2} y_{N2}
      :
      x_{NA_N} y_{NA_N}
attempt: def hou2(tarrs, s, N):
      def checkTestimony(s, t):
          scopy = s[:]
          for i in range(len(s)):
              if s[i] != t[i] and s[i] != 0 and t[i] != 0:
                  return None
              if t[i]:
                  scopy[i] = t[i]
          return scopy
  
      def search(pos, N, s, acc):
          if pos < N:
              check_tp = checkTestimony(s, tarrs[pos])
              if s[pos] == 1:
                  s[pos] = -1
                  if check_tp:
                      check_tp[pos] = 1
                      return search(pos + 1, N, check_tp, acc + 1)
                  else:
                      return 0
              if check_tp and s[pos] == 0:
                  s[pos] = -1
                  check_tp[pos] = 1
                  return max(
                      search(pos + 1, N, check_tp, acc + 1), search(pos + 1, N, s, acc)
                  )
              else:  # testimony unacceptable, assuming unkind
                  s[pos] = -1
                  return search(pos + 1, N, s, acc)
          else:
              return acc
  
      return search(0, N, s, 0)
  
  
  if __name__ == "__main__":
      import sys
  
      in_arr = []
      for line in sys.stdin:
          in_arr.append([int(_) for _ in line.strip().split()])
      N = in_arr[0][0]
      i = 1
      tarrs = []
      s = [0] * N
      while i < len(in_arr):
          tnum = in_arr[i][0]
          tarr = [0] * N
          for j in range(tnum):
              x, y = in_arr[1 + j + i]
              tarr[x - 1] = 1 if y else -1  # -1 claimed unkind, 1 claimed honest
          if tarr[len(tarrs)] == -1:  # claimed self to be unkind
              s[len(tarrs)] = -1
          tarrs.append(tarr)
          i += tnum + 1
          print(hou2(tarrs, s, N))
  
problem_description: Statement
  
  There are N people numbered 1 to N. Each of them is either an _honest_ person
  whose testimonies are always correct or an _unkind_ person whose testimonies
  may be correct or not.
  
  Person i gives A_i testimonies. The j-th testimony by Person i is represented
  by two integers x_{ij} and y_{ij}. If y_{ij} = 1, the testimony says Person
  x_{ij} is honest; if y_{ij} = 0, it says Person x_{ij} is unkind.
  
  How many honest persons can be among those N people at most?
samples: [{"input": "3\n    1\n    2 1\n    1\n    1 1\n    1\n    2 0", "output": "2\n    \n\nIf Person 1 and Person 2 are honest and Person 3 is unkind, we have two honest\npersons without inconsistencies, which is the maximum possible number of\nhonest persons.\n\n* * *"}, {"input": "3\n    2\n    2 1\n    3 0\n    2\n    3 1\n    1 0\n    2\n    1 1\n    2 0", "output": "0\n    \n\nAssuming that one or more of them are honest immediately leads to a\ncontradiction.\n\n* * *"}, {"input": "2\n    1\n    2 0\n    1\n    1 0", "output": "1"}]