#include <bits/stdc++.h>
bool dp[1111], done[1111];
int x, y;
int n, a[1111], i, j, k;
int cnt[1111];
int find(int x, int dp) {
  if (a[x]) {
    a[x] = find(a[x], dp + 1);
    return a[x];
  }
  cnt[x] = dp;
  return x;
}
int main() {
  scanf("%d %d", &n, &x);
  for (i = 1; i <= n; ++i) {
    scanf("%d", a + i);
    done[a[i]] = true;
  }
  for (y = 1; a[x]; x = a[x], ++y)
    ;
  for (i = 1; i <= n; ++i)
    if (!done[i]) find(i, 1);
  dp[y] = true;
  for (i = 1; i <= n; ++i)
    if (i != x && !a[i])
      for (j = n; j > cnt[i]; --j)
        if (dp[j - cnt[i]]) dp[j] = true;
  for (i = 1; i <= n; ++i)
    if (dp[i]) printf("%d\n", i);
  return 0;
}
