output_description: Print the maximum number of points you can gain.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 \cdots A_{3N}
attempt: import copy
  import itertools
  
  n = int(input())
  a = list(map(int, input().split()))
  dp1 = [[0] * (n + 1) for i in range(n + 1)]
  f = copy.deepcopy(dp1)
  for k in list(itertools.permutations(a[0:5])):
      x = k[2] == k[3] and k[2] == k[4]
      dp1[k[0]][k[1]] = int(x)
      f[k[0]][k[1]] = 1
  dp2 = copy.deepcopy(dp1)
  x = 0
  for i in range(1, n - 1):
      p, q, r = sorted(a[(3 * i + 2) : (3 * i + 5)])
      if p == r:
          x += 1
      elif p == q:
          for j in range(n):
              if f[j + 1][p] == 1:
                  dp2[j + 1][r] = dp1[j + 1][p] + 1
                  dp2[r][j + 1] = dp1[j + 1][p] + 1
                  f[j + 1][r], dp2[r][j + 1] = 1, 1
              if f[r][r] == 1:
                  dp2[p][p] = dp1[r][r] + 1
                  f[p][p] = 1
      elif q == r:
          for j in range(n):
              if f[j + 1][q] == 1:
                  dp2[j + 1][p] = dp1[j + 1][q] + 1
                  dp2[p][j + 1] = dp1[j + 1][q] + 1
                  f[j + 1][p], dp2[p][j + 1] = 1, 1
              if f[p][p] == 1:
                  dp2[q][q] = dp1[p][p] + 1
                  f[q][q] = 1
      else:
          if f[r][r] == 1:
              dp2[p][q] = dp1[r][r] + 1
              f[p][q] = 1
          if f[p][p] == 1:
              dp2[q][r] = dp1[p][p] + 1
              f[q][r] = 1
          if f[p][p] == 1:
              dp2[q][r] = dp1[p][p] + 1
              f[q][r] = 1
      dp1 = copy.deepcopy(dp2)
  if f[a[-1]][a[-1]] == 1:
      dp1[a[-1]][a[-1]] += 1
  print(x + max(sum(dp1, [])))
  
problem_description: Statement
  
  We have 3N cards arranged in a row from left to right, where each card has an
  integer between 1 and N (inclusive) written on it. The integer written on the
  i-th card from the left is A_i.
  
  You will do the following operation N-1 times:
  
    * Rearrange the five leftmost cards in any order you like, then remove the three leftmost cards. If the integers written on those three cards are all equal, you gain 1 point.
  
  After these N-1 operations, if the integers written on the remaining three
  cards are all equal, you will gain 1 additional point.
  
  Find the maximum number of points you can gain.
samples: [{"input": "2\n    1 2 1 2 2 1", "output": "2\n    \n\nLet us rearrange the five leftmost cards so that the integers written on the\nsix cards will be 2\\ 2\\ 2\\ 1\\ 1\\ 1 from left to right.\n\nThen, remove the three leftmost cards, all of which have the same integer 2,\ngaining 1 point.\n\nNow, the integers written on the remaining cards are 1\\ 1\\ 1.\n\nSince these three cards have the same integer 1, we gain 1 more point.\n\nIn this way, we can gain 2 points - which is the maximum possible.\n\n* * *"}, {"input": "3\n    1 1 2 2 3 3 3 2 1", "output": "1\n    \n\n* * *"}, {"input": "3\n    1 1 2 2 2 3 3 3 1", "output": "3"}]