import java.util.Scanner;

public class Main {

    static int ANS = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    }

    private static int push(int[] an, int next, boolean[] hasPushed) {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    }
} import java.util.Scanner; Scanner java.util public class Main {

    static int ANS = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    }

    private static int push(int[] an, int next, boolean[] hasPushed) {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    }
} Main static int ANS = 0; ANS 0 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    } main {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = Integer.parseInt(sc.nextLine()); N Integer.parseInt(sc.nextLine()) Integer.parseInt Integer sc.nextLine() sc.nextLine sc int[] an = new int[N]; an new int[N] N boolean[] hasPushed = new boolean[N]; hasPushed new boolean[N] N for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            an[i] = Integer.parseInt(sc.next());
        } {
            an[i] = Integer.parseInt(sc.next());
        } an[i] = Integer.parseInt(sc.next()) an[i] an i Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc boolean canComp = true; canComp true int next = 0; next 0 for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        } {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        } if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            } hasPushed[next] hasPushed next {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            } canComp = false canComp false break; next = push(an, next, hasPushed) next push(an, next, hasPushed) push an next hasPushed if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            } next == 1 next 1 {
                // ボタン2に到達したので終わる
                break;
            } break; System.out.println(canComp ? ANS : -1) System.out.println System.out System System.out canComp ? ANS : -1 canComp ANS -1 1 String[] args args private static int push(int[] an, int next, boolean[] hasPushed) {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    } push {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    } ANS++ ANS hasPushed[next] = true hasPushed[next] hasPushed next true return an[next] - 1; an[next] - 1 an[next] an next 1 int[] an an int next next boolean[] hasPushed hasPushed public class Main {

    static int ANS = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    }

    private static int push(int[] an, int next, boolean[] hasPushed) {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    }
} public class Main {

    static int ANS = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    }

    private static int push(int[] an, int next, boolean[] hasPushed) {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    }
} Main
import java.util.Scanner;

public class Main {

    static int ANS = 0;

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = Integer.parseInt(sc.nextLine());
        int[] an = new int[N];
        boolean[] hasPushed = new boolean[N];
        for (int i = 0; i < N; i++) {
            an[i] = Integer.parseInt(sc.next());
        }

        boolean canComp = true;
        int next = 0;
        for (int i = 0; i < N; i++) {
            if (hasPushed[next]) {
                // 既に押したボタンの場合はループしているので終了する
                canComp = false;
                break;
            }
            next = push(an, next, hasPushed);

            if (next == 1) {
                // ボタン2に到達したので終わる
                break;
            }
        }
        System.out.println(canComp ? ANS : -1);
    }

    private static int push(int[] an, int next, boolean[] hasPushed) {
        ANS++;
        hasPushed[next] = true;
        return an[next] - 1;
    }
}
