output_description: Print the number of ways to paint the string that satisfy the condition.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      S
attempt: n = int(input())
  s = input()
  s1 = s[:n]
  s2 = s[n:][::-1]
  dic1 = {}
  dic2 = {}
  for i in range(2**n):
      r1 = ""
      r2 = ""
      b1 = ""
      b2 = ""
      flag = format(i, "b")
      l = len(flag)
      if l != n:
          flag = "0" * (n - l) + flag
      for j in range(n):
          if flag[j] == "0":
              r1 += s1[j]
              r2 += s2[j]
          else:
              b1 += s1[j]
              b2 += s2[j]
      if (r1, b1) not in dic1:
          dic1[(r1, b1)] = 1
      else:
          dic1[(r1, b1)] += 1
      if (r2, b2) not in dic2:
          dic2[(r2, b2)] = 1
      else:
          dic2[(r2, b2)] += 1
  ans = 0
  for i in dic1.keys():
      if i in dic2:
          ans += dic1[i] * dic2[i]
  print(ans)
  
problem_description: Statement
  
  You are given a string S of length 2N consisting of lowercase English letters.
  
  There are 2^{2N} ways to color each character in S red or blue. Among these
  ways, how many satisfy the following condition?
  
    * The string obtained by reading the characters painted red **from left to right** is equal to the string obtained by reading the characters painted blue **from right to left**.
samples: [{"input": "4\n    cabaacba", "output": "4\n    \n\nThere are four ways to paint the string, as follows:\n\n  * cabaacba\n  * cabaacba\n  * cabaacba\n  * cabaacba\n\n* * *"}, {"input": "11\n    mippiisssisssiipsspiim", "output": "504\n    \n\n* * *"}, {"input": "4\n    abcdefgh", "output": "0\n    \n\n* * *"}, {"input": "18\n    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "output": "9075135300\n    \n\nThe answer may not be representable as a 32-bit integer."}]