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
  
  INF = 1 << 60
  MOD = 10**9 + 7  # 998244353
  sys.setrecursionlimit(2147483647)
  input = lambda: sys.stdin.readline().rstrip()
  from collections import defaultdict
  
  
  def resolve():
      n = int(input())
      A = list(map(int, input().split()))
      dp = defaultdict(int)
      dp[(A[0], A[1])] = 0
  
      for i in range(n - 1):
          ndp = defaultdict(int)
          k = max(dp.values())
          for key, val in dp.items():
              if val != k:
                  continue
              B = list(key)
              for j in range(3 * i + 2, 3 * i + 5):
                  B.append(A[j])
              B.sort()
              for s in range(5):
                  for t in range(s + 1, 5):
                      C = B[:]
                      C.remove(B[s])
                      C.remove(B[t])
                      if len(set(C)) == 1:
                          ndp[B[s], B[t]] = max(ndp[B[s], B[t]], val + 1)
                      else:
                          ndp[B[s], B[t]] = max(ndp[B[s], B[t]], val)
          dp = ndp
  
      ans = 0
      for key, val in dp.items():
          if key[0] == key[-1] == A[-1]:
              val += 1
          ans = max(ans, val)
      print(ans)
  
  
  resolve()
  
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"}]