output_description: Print the largest possible number of different letters contained in both X and
  Y.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      S
attempt: n = int(input())
  s = list(input())
  
  if n%2 == 0:
      s1 = set(s[:n//2])
      s2 = set(s[n//2:])
      print(len(s1&s2))
  else:
      s1 = set(s[:n//2])
      s2 = set(s[n//2:])
      s3 = set(s[:(n//2)+1])
      s4 = set(s[(n//2)+1:])
    print(max(len(s1&s2),len(s3,s4)))
problem_description: Statement
  
  You are given a string S of length N consisting of lowercase English letters.
  We will cut this string at one position into two strings X and Y. Here, we
  would like to maximize the number of different letters contained in both X and
  Y. Find the largest possible number of different letters contained in both X
  and Y when we cut the string at the optimal position.
samples: [{"input": "6\n    aabbca", "output": "2\n    \n\nIf we cut the string between the third and fourth letters into X = `aab` and Y\n= `bca`, the letters contained in both X and Y are `a` and `b`. There will\nnever be three or more different letters contained in both X and Y, so the\nanswer is 2.\n\n* * *"}, {"input": "10\n    aaaaaaaaaa", "output": "1\n    \n\nHowever we divide S, only `a` will be contained in both X and Y.\n\n* * *"}, {"input": "45\n    tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir", "output": "9"}]