import java.util.Scanner;

public class Main {

    private static final int GOAL_BUTTON = 2;

	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	}
}

class Button {

    /** 光らせるボタン */
    private int target;

    /** 光っているかどうか */
    private boolean on;

    /** 押された（光らせたか）どうか */
    private boolean pushed;

    public Button(int target) {
        this.target = target;
        on = false;
    }

    /** ボタンを押して光っている状態を反転後、光るボタンを返す */
    public int push() {
        on = !on;

        if (on) {
            pushed = true;
        }

        return target;
    }

    public int getTarget() {
        return target;
    }

    public void setTarget(int target) {
        this.target = target;
    }

    public boolean isOn() {
        return on;
    }

    public boolean isPushed() {
        return pushed;
    }
} import java.util.Scanner; Scanner java.util public class Main {

    private static final int GOAL_BUTTON = 2;

	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	}
} Main private static final int GOAL_BUTTON = 2; GOAL_BUTTON 2 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	} main {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc Button[] buttons = new Button[n]; buttons new Button[n] n for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        } {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        } Button bt = new Button(sc.nextInt()); bt new Button(sc.nextInt()) if (i == 0) {
                bt.push();
            } i == 0 i 0 {
                bt.push();
            } bt.push() bt.push bt buttons[i] = bt buttons[i] buttons i bt int next = buttons[0].push(); next buttons[0].push() buttons[0].push buttons[0] buttons 0 int pushCount = 1; pushCount 1 while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        } true {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        } if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            } next == GOAL_BUTTON next GOAL_BUTTON {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            } System.out.println(pushCount) System.out.println System.out System System.out pushCount return; if (buttons.length < next) {
                System.out.println(-1);

                return;
            } buttons.length < next buttons.length buttons buttons.length next {
                System.out.println(-1);

                return;
            } System.out.println(-1) System.out.println System.out System System.out -1 1 return; Button targetButton = buttons[next - 1]; targetButton buttons[next - 1] buttons next - 1 next 1 if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            } targetButton.isPushed() targetButton.isPushed targetButton {
                System.out.println(-1);

                return;
            } System.out.println(-1) System.out.println System.out System System.out -1 1 return; {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            } next = targetButton.push() next targetButton.push() targetButton.push targetButton ++pushCount pushCount String[] args args class Button {

    /** 光らせるボタン */
    private int target;

    /** 光っているかどうか */
    private boolean on;

    /** 押された（光らせたか）どうか */
    private boolean pushed;

    public Button(int target) {
        this.target = target;
        on = false;
    }

    /** ボタンを押して光っている状態を反転後、光るボタンを返す */
    public int push() {
        on = !on;

        if (on) {
            pushed = true;
        }

        return target;
    }

    public int getTarget() {
        return target;
    }

    public void setTarget(int target) {
        this.target = target;
    }

    public boolean isOn() {
        return on;
    }

    public boolean isPushed() {
        return pushed;
    }
} Button /** 光らせるボタン */
    private int target; target /** 光っているかどうか */
    private boolean on; on /** 押された（光らせたか）どうか */
    private boolean pushed; pushed public Button(int target) {
        this.target = target;
        on = false;
    } Button {
        this.target = target;
        on = false;
    } this.target = target this.target this this.target target on = false on false int target target /** ボタンを押して光っている状態を反転後、光るボタンを返す */
    public int push() {
        on = !on;

        if (on) {
            pushed = true;
        }

        return target;
    } push {
        on = !on;

        if (on) {
            pushed = true;
        }

        return target;
    } on = !on on !on on if (on) {
            pushed = true;
        } on {
            pushed = true;
        } pushed = true pushed true return target; target public int getTarget() {
        return target;
    } getTarget {
        return target;
    } return target; target public void setTarget(int target) {
        this.target = target;
    } setTarget {
        this.target = target;
    } this.target = target this.target this this.target target int target target public boolean isOn() {
        return on;
    } isOn {
        return on;
    } return on; on public boolean isPushed() {
        return pushed;
    } isPushed {
        return pushed;
    } return pushed; pushed public class Main {

    private static final int GOAL_BUTTON = 2;

	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	}
} public class Main {

    private static final int GOAL_BUTTON = 2;

	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	}
} Main
import java.util.Scanner;

public class Main {

    private static final int GOAL_BUTTON = 2;

	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();
        Button[] buttons = new Button[n];

        for (int i = 0; i < n; i++) {
            Button bt = new Button(sc.nextInt());

            // ボタン1が初期で光っている
            if (i == 0) {
                bt.push();
            }

            buttons[i] = bt;
        }

        int next = buttons[0].push();
        int pushCount = 1;

        while (true) {
            if (next == GOAL_BUTTON) {

                // 押した結果光ったのが2なら終了
                System.out.println(pushCount);

                return;
            }

            if (buttons.length < next) {
                System.out.println(-1);

                return;
            }

            // 次に押すボタン
            Button targetButton = buttons[next - 1];

            // 押されたボタンを再度押すと無限に続くため2は光らせられない
            if (targetButton.isPushed()) {
                System.out.println(-1);

                return;
            } else {

                // 押されてなければ押して回数を加算
                next = targetButton.push();
                ++pushCount;
            }
        }
	}
}

class Button {

    /** 光らせるボタン */
    private int target;

    /** 光っているかどうか */
    private boolean on;

    /** 押された（光らせたか）どうか */
    private boolean pushed;

    public Button(int target) {
        this.target = target;
        on = false;
    }

    /** ボタンを押して光っている状態を反転後、光るボタンを返す */
    public int push() {
        on = !on;

        if (on) {
            pushed = true;
        }

        return target;
    }

    public int getTarget() {
        return target;
    }

    public void setTarget(int target) {
        this.target = target;
    }

    public boolean isOn() {
        return on;
    }

    public boolean isPushed() {
        return pushed;
    }
}