import java.util.Scanner;
public class P1068 {
private static int[][] matrix;
private static boolean[] visit;
private static int answer;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(), root = 0;
matrix = new int[n][n];
visit = new boolean[n];
for (int i = 0; i < n; i++) {
int parent = sc.nextInt();
if (parent != -1) {
matrix[i][parent] = matrix[parent][i] = 1;
} else {
root = i;
}
}
int cutNode = sc.nextInt();
System.out.println(solution(cutNode, root));
sc.close();
}
private static int solution(int cutNode, int root) {
if (cutNode == root) return 0;
visit[cutNode] = true;
dfs(root);
return answer;
}
private static void dfs(int node) {
int leaf = 0;
visit[node] = true;
for (int i = 0; i < matrix.length; i++) {
if (matrix[node][i] == 1 && !visit[i]) {
leaf++;
dfs(i);
}
}
if (leaf == 0) {
answer++;
}
}
}