output_description: If the assignment is possible, print `POSSIBLE`; otherwise, print
  `IMPOSSIBLE`.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      p_1 p_2 ... p_N
attempt: # F
  N = int(input())
  p_list = list(map(int, input().split()))
  
  # usagi to kame
  # start from 1
  usagi = 1
  kame = 1
  
  
  def back(i):
      return p_list[i - 1]
  
  
  usagi = back(back(usagi))
  kame = back(kame)
  
  while usagi != kame:
      usagi = back(back(usagi))
      kame = back(kame)
  
  # begin loop
  # length of loop
  L = 1
  usagi = back(back(usagi))
  kame = back(kame)
  
  while usagi != kame:
      usagi = back(back(usagi))
      kame = back(kame)
      L += 1
  
  if L % 2 == 0:
      print("POSSIBLE")
  else:
      print("IMPOSSIBLE")
  
problem_description: Statement
  
  There is a directed graph with N vertices and N edges. The vertices are
  numbered 1, 2, ..., N.
  
  The graph has the following N edges: (p_1, 1), (p_2, 2), ..., (p_N, N), and
  the graph is weakly connected. Here, an edge from Vertex u to Vertex v is
  denoted by (u, v), and a weakly connected graph is a graph which would be
  connected if each edge was bidirectional.
  
  We would like to assign a value to each of the vertices in this graph so that
  the following conditions are satisfied. Here, a_i is the value assigned to
  Vertex i.
  
    * Each a_i is a non-negative integer.
    * For each edge (i, j), a_i \neq a_j holds.
    * For each i and each integer x(0 ≤ x < a_i), there exists a vertex j such that the edge (i, j) exists and x = a_j holds.
  
  Determine whether there exists such an assignment.
samples: [{"input": "4\n    2 3 4 1", "output": "POSSIBLE\n    \n\nThe assignment is possible: {a_i} = {0, 1, 0, 1} or {a_i} = {1, 0, 1, 0}.\n\n* * *"}, {"input": "3\n    2 3 1", "output": "IMPOSSIBLE\n    \n\n* * *"}, {"input": "4\n    2 3 1 1", "output": "POSSIBLE\n    \n\nThe assignment is possible: {a_i} = {2, 0, 1, 0}.\n\n* * *"}, {"input": "6\n    4 5 6 5 6 4", "output": "IMPOSSIBLE"}]