import java.util.*;

class Main{
    static Scanner sc = new Scanner(System.in);
    public static void main(String args[]){
        int N=sc.nextInt(),a[]=new int[N];
        boolean F[]=new boolean[N];
        Arrays.fill(F,false);
        for(int i=0;i<N;i++){
            a[i]=(sc.nextInt()-1);
        }
        int t=0,c=0;
        while(true){
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        }
        System.out.println(F[1]?c-1:-1);
    }
} import java.util.*; util.* java class Main{
    static Scanner sc = new Scanner(System.in);
    public static void main(String args[]){
        int N=sc.nextInt(),a[]=new int[N];
        boolean F[]=new boolean[N];
        Arrays.fill(F,false);
        for(int i=0;i<N;i++){
            a[i]=(sc.nextInt()-1);
        }
        int t=0,c=0;
        while(true){
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        }
        System.out.println(F[1]?c-1:-1);
    }
} Main static Scanner sc = new Scanner(System.in); sc new Scanner(System.in) public static void main(String args[]){
        int N=sc.nextInt(),a[]=new int[N];
        boolean F[]=new boolean[N];
        Arrays.fill(F,false);
        for(int i=0;i<N;i++){
            a[i]=(sc.nextInt()-1);
        }
        int t=0,c=0;
        while(true){
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        }
        System.out.println(F[1]?c-1:-1);
    } main {
        int N=sc.nextInt(),a[]=new int[N];
        boolean F[]=new boolean[N];
        Arrays.fill(F,false);
        for(int i=0;i<N;i++){
            a[i]=(sc.nextInt()-1);
        }
        int t=0,c=0;
        while(true){
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        }
        System.out.println(F[1]?c-1:-1);
    } int N=sc.nextInt() N sc.nextInt() sc.nextInt sc a[]=new int[N]; a new int[N] N boolean F[]=new boolean[N]; F new boolean[N] N Arrays.fill(F,false) Arrays.fill Arrays F false for(int i=0;i<N;i++){
            a[i]=(sc.nextInt()-1);
        } int i=0; int i=0; i 0 i<N i N i++ i++ i {
            a[i]=(sc.nextInt()-1);
        } {
            a[i]=(sc.nextInt()-1);
        } a[i]=(sc.nextInt()-1) a[i] a i (sc.nextInt()-1) sc.nextInt() sc.nextInt sc 1 int t=0 t 0 c=0; c 0 while(true){
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        } true {
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        } if(F[t]||F[1]){
                break;
            } F[t]||F[1] F[t] F t F[1] F 1 {
                break;
            } break; c++ c F[t]=true F[t] F t true t=a[t] t a[t] a t System.out.println(F[1]?c-1:-1) System.out.println System.out System System.out F[1]?c-1:-1 F[1] F 1 c-1 c 1 -1 1 String args[] args
import java.util.*;

class Main{
    static Scanner sc = new Scanner(System.in);
    public static void main(String args[]){
        int N=sc.nextInt(),a[]=new int[N];
        boolean F[]=new boolean[N];
        Arrays.fill(F,false);
        for(int i=0;i<N;i++){
            a[i]=(sc.nextInt()-1);
        }
        int t=0,c=0;
        while(true){
            if(F[t]||F[1]){
                break;
            }
            c++;
            F[t]=true;
            t=a[t];
        }
        System.out.println(F[1]?c-1:-1);
    }
}
