output_description: Print the maximum possible number of pairs such that the sum of the integers
  written on each pair of balls is a power of 2.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 ... A_N
attempt: input()
  A = list(map(int, input().split()))
  
  
  def add(i):
      global n
      # print("i=",i)
      if i in b:
          if b.get(i, 0) == m:
              b[i] = 0
              add(i - 1)
          else:
              b[i] = b.get(i, b[i]) + 1
              n = max(n, b[i])
      else:
          b[i] = b.get(i, b[1]) + 1
          n = max(n, b[i])
  
  
  lo = 1
  hi = 10**6
  while lo < hi:
      m = (lo + hi) // 2
      ba = 0
      b = {}
      b[0] = 0
      b[1] = 1
      n = 1
      for fr in A:
          # print(b,m,ba,fr)
          if fr == ba:
              add(fr)
          if fr < ba:
              c = {}
              for bb in list(b.keys()):
                  if bb <= fr:
                      c[bb] = b[bb]
              b = c
              add(fr)
          if b[0] >= 1:
              lo = m + 1
              flag = 0
              break
          ba = fr
      # print(b)
      hi = min(n, m)
      lo = 1
  print(n)
  
problem_description: Statement
  
  Takahashi has N balls with positive integers written on them. The integer
  written on the i-th ball is A_i. He would like to form some number of pairs
  such that the sum of the integers written on each pair of balls is a power of
  2. Note that a ball cannot belong to multiple pairs. Find the maximum possible
  number of pairs that can be formed.
  
  Here, a positive integer is said to be a power of 2 when it can be written as
  2^t using some non-negative integer t.
samples: [{"input": "3\n    1 2 3", "output": "1\n    \n\nWe can form one pair whose sum of the written numbers is 4 by pairing the\nfirst and third balls. Note that we cannot pair the second ball with itself.\n\n* * *"}, {"input": "5\n    3 11 14 5 13", "output": "2"}]