output_description: Print -1 if it is impossible to lighten up Button 2. Otherwise, print the
  minimum number of times we need to press buttons in order to lighten up Button
  2.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_1
      a_2
      :
      a_N
attempt: #!/usr/bin/env python3
  from collections import defaultdict
  from collections import deque
  from heapq import heappush, heappop
  import sys
  import math
  import bisect
  import random
  import itertools
  
  sys.setrecursionlimit(10**5)
  stdin = sys.stdin
  bisect_left = bisect.bisect_left
  bisect_right = bisect.bisect_right
  
  
  def LI():
      return list(map(int, stdin.readline().split()))
  
  
  def LF():
      return list(map(float, stdin.readline().split()))
  
  
  def LI_():
      return list(map(lambda x: int(x) - 1, stdin.readline().split()))
  
  
  def II():
      return int(stdin.readline())
  
  
  def IF():
      return float(stdin.readline())
  
  
  def LS():
      return list(map(list, stdin.readline().split()))
  
  
  def S():
      return list(stdin.readline().rstrip())
  
  
  def IR(n):
      return [II() for _ in range(n)]
  
  
  def LIR(n):
      return [LI() for _ in range(n)]
  
  
  def FR(n):
      return [IF() for _ in range(n)]
  
  
  def LFR(n):
      return [LI() for _ in range(n)]
  
  
  def LIR_(n):
      return [LI_() for _ in range(n)]
  
  
  def SR(n):
      return [S() for _ in range(n)]
  
  
  def LSR(n):
      return [LS() for _ in range(n)]
  
  
  mod = 1000000007
  inf = float("INF")
  
  
  # A
  def A():
      x, a, b = LI()
      if b <= a:
          print("delicious")
      elif b <= a + x:
          print("safe")
      else:
          print("dangerous")
  
      return
  
  
  # B
  def B():
      n = II()
      a = IR(n)
      check = [False] * (n + 1)
      check[1] = True
      now = a[0]
      for i in range(1, n + 1):
          if check[now]:
              break
          if now == 2:
              print(i)
              return
          check[now] = True
          now = a[now - 1]
      print(-1)
      return
  
  
  # C
  def C():
      return
  
  
  # D
  def D():
      return
  
  
  # Solve
  if __name__ == "__main__":
      B()
  
problem_description: Statement
  
  Takahashi wants to gain muscle, and decides to work out at AtCoder Gym.
  
  The exercise machine at the gym has N buttons, and exactly one of the buttons
  is lighten up. These buttons are numbered 1 through N. When Button i is
  lighten up and you press it, the light is turned off, and then Button a_i will
  be lighten up. It is possible that i=a_i. When Button i is not lighten up,
  nothing will happen by pressing it.
  
  Initially, Button 1 is lighten up. Takahashi wants to quit pressing buttons
  when Button 2 is lighten up.
  
  Determine whether this is possible. If the answer is positive, find the
  minimum number of times he needs to press buttons.
samples: [{"input": "3\n    3\n    1\n    2", "output": "2\n    \n\nPress Button 1, then Button 3.\n\n* * *"}, {"input": "4\n    3\n    4\n    1\n    2", "output": "-1\n    \n\nPressing Button 1 lightens up Button 3, and vice versa, so Button 2 will never\nbe lighten up.\n\n* * *"}, {"input": "5\n    3\n    3\n    4\n    2\n    4", "output": "3"}]