import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	}
} import java.util.HashMap; HashMap java.util import java.util.Map; Map java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	} main {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		} {
			sc.close();
		} sc.close() sc.close sc {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} int n = Integer.parseInt(sc.nextLine()); n Integer.parseInt(sc.nextLine()) Integer.parseInt Integer sc.nextLine() sc.nextLine sc Map<Integer, String> map = new HashMap<Integer, String>(); map new HashMap<Integer, String>() int next = 1; next 1 int count = 0; count 0 for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			} int i = 1; int i = 1; i 1 i <= n i n i++ i++ i {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			} {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			} String s = sc.nextLine(); s sc.nextLine() sc.nextLine sc if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				} i == next i next {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} if (next == 2) {
						System.out.println(count);
						return;
					} next == 2 next 2 {
						System.out.println(count);
						return;
					} System.out.println(count) System.out.println System.out System System.out count return; next = Integer.parseInt(s) next Integer.parseInt(s) Integer.parseInt Integer s count++ count while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					} next <= i next i {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					} if (next == 2) {
							System.out.println(count);
							return;
						} next == 2 next 2 {
							System.out.println(count);
							return;
						} System.out.println(count) System.out.println System.out System System.out count return; if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						} !map.containsKey(next) map.containsKey(next) map.containsKey map next {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						} System.out.println(-1) System.out.println System.out System System.out -1 1 return; next = Integer.parseInt(map.remove(next)) next Integer.parseInt(map.remove(next)) Integer.parseInt Integer map.remove(next) map.remove map next count++ count {
					map.put(i, s);
				} map.put(i, s) map.put map i s String[] args args public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	}
} public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	}
} Main
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		try {
			int n = Integer.parseInt(sc.nextLine());

			Map<Integer, String> map = new HashMap<Integer, String>();
			int next = 1;
			int count = 0;
			for (int i = 1; i <= n; i++) {
				String s = sc.nextLine();
				if (i == next) {
					if (next == 2) {
						System.out.println(count);
						return;
					}
					next = Integer.parseInt(s);
					count++;
					while (next <= i) {
						if (next == 2) {
							System.out.println(count);
							return;
						}
						if (!map.containsKey(next)) {
							// すでに押したことがあるボタンに戻ってしまった場合は到達不可
							System.out.println(-1);
							return;
						}
						next = Integer.parseInt(map.remove(next));
						count++;
					}
				} else {
					map.put(i, s);
				}
			}
		} finally {
			sc.close();
		}
	}
}