output_description: If there exists a tree that satisfies the condition, print `Possible`.
  Otherwise, print `Impossible`.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N
      a_1 a_2 ... a_N
attempt: from collections import Counter
  
  n = int(input())
  a = list(map(int, input().split()))
  
  c = Counter(a)
  m = max(a)
  
  flag = True
  
  for i in range(1, m+1):
      if i<=m//2:
          if c[i]>1:
              flag = False
      else:
          if c[i]<2:
          flag = False
          break
  if m%2==0 and c[m//2]!=1:
      flag = False
  print('Possible' if flag else 'Impossible')
problem_description: Statement
  
  Aoki loves numerical sequences and trees.
  
  One day, Takahashi gave him an integer sequence of length N, a_1, a_2, ...,
  a_N, which made him want to construct a tree.
  
  Aoki wants to construct a tree with N vertices numbered 1 through N, such that
  for each i = 1,2,...,N, the distance between vertex i and the farthest vertex
  from it is a_i, assuming that the length of each edge is 1.
  
  Determine whether such a tree exists.
samples: [{"input": "5\n    3 2 2 3 3", "output": "Possible\n    \n\n![](https://atcoder.jp/img/agc005/cda0380bb5cd1b9502cfceaf2526d91e.png)\n\nThe diagram above shows an example of a tree that satisfies the conditions.\nThe red arrows show paths from each vertex to the farthest vertex from it.\n\n* * *"}, {"input": "3\n    1 1 2", "output": "Impossible\n    \n\n* * *"}, {"input": "10\n    1 2 2 2 2 2 2 2 2 2", "output": "Possible\n    \n\n* * *"}, {"input": "10\n    1 1 2 2 2 2 2 2 2 2", "output": "Impossible\n    \n\n* * *"}, {"input": "6\n    1 1 1 1 1 5", "output": "Impossible\n    \n\n* * *"}, {"input": "5\n    4 3 2 3 4", "output": "Possible"}]