20 20
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 10 4
0 1 4 2 7 0 10 0 5 8
 10 7
10 8 6 5 0 0 0 4 3 9
 10 1
8 7 0 2 0 10 0 0 3 5
 10 7
7 9 2 10 0 0 0 3 5 1
 10 2
10 0 9 0 0 4 2 6 8 0
 10 2
0 7 0 10 8 0 4 2 3 0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 3
4
8
9
 1
5
6
10
 2
4
5
7
8
10
 1
2
6
7
 1
2
3
4
6
7
8
9
 4
5
6
7
8

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;

public class WorkFile {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt(), smartbeaver = s.nextInt()-1;
        ArrayList<Integer> list = new ArrayList<>();
        HashMap<Integer, Integer> d = new HashMap<>();
        for (int i=0; i<n; i++) {
            int x = s.nextInt();
            if (x==0) list.add(i);
            else d.put(x-1, i);
        }
        int start = 0;
        boolean[] res = new boolean[n+1];
        res[0] = true;
        for (int x:list) {
            int len = 1;
            boolean check = false;
            for (int i=0; i<=n; i++) {
                if (x==smartbeaver) {
                    start = len; check = true; break;
                }
                if (d.get(x)==null) break;
                x = d.get(x);
                len++;
            }
            if (!check) {
                for (int i=n; i>=len; i--) {
                    if (res[i-len]) res[i] = true;
                }
            }
        }
        StringBuilder ans = new StringBuilder();
        for (int i=0; i<=n; i++) {
            if (res[i]) ans.append(start+i).append('\n');
        }
        System.out.println(ans);
    }
}