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 sys
  
  input = sys.stdin.buffer.readline
  
  n = int(input())
  a = list(map(int, input().split()))
  
  a.append(n + 1)
  a.append(n + 1)
  
  dp = [[-1] * (n + 2) for i in range(n + 2)]
  ma = [-1] * (n + 2)
  
  dp[a[0]][a[1]] = 0
  ma[a[0]] = 0
  ma[a[1]] = 0
  
  after = 0
  
  for i in range(n):
      x, y, z = a[3 * i + 2], a[3 * i + 3], a[3 * i + 4]
      if x == z:
          y, z = z, y
      if y == z:
          x, z = z, x
  
      if x == z:
          after += 1
          continue
  
      tank = []
  
      if x != y:
          for i in range(n + 1):
              tank.append((i, x, ma[i]))
              tank.append((i, y, ma[i]))
              tank.append((i, z, ma[i]))
          tank.append((x, y, max(max(ma), dp[z][z] + 1)))
          tank.append((x, z, max(max(ma), dp[y][y] + 1)))
          tank.append((y, z, max(max(ma), dp[x][x] + 1)))
      else:
          for i in range(n + 1):
              tank.append((i, x, ma[i]))
              tank.append((i, y, ma[i]))
              tmp = ma[i]
              if dp[i][x] != -1:
                  tmp = max(tmp, dp[i][x] + 1)
              if dp[x][i] != -1:
                  tmp = max(tmp, dp[x][i] + 1)
              tank.append((i, z, tmp))
          tank.append((x, y, max(max(ma), dp[z][z] + 1)))
          tank.append((x, z, max(max(ma), dp[y][y] + 1)))
          tank.append((y, z, max(max(ma), dp[x][x] + 1)))
  
      for p, q, c in tank:
          dp[p][q] = max(dp[p][q], c)
          ma[p] = max(ma[p], c)
          ma[q] = max(ma[q], c)
  
  res = 0
  for i in range(n + 2):
      for j in range(n + 2):
          res = max(res, dp[i][j])
  
  print(res + after)
  
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"}]