정보원에 따르면 ACM 보안국(ASA) 안에 배신자가 한 명 있다. ASA는 계층 구조를 이룬다. 요원에게는 각자 상관이 한 명 있고, 아무에게도 관리받지 않는 최고 관리자가 한 명 이상 있다. 정보원은 배신자가 누구인지 정확히 알지 못하지만 용의자 명단은 가지고 있다. 그래서 우리가 아는 사실은 배신자가 정확히 한 명이라는 것과 이 용의자 명단뿐이다. 배신자를 찾으려고 용의자마다 감시자를 한 명 붙이려 한다. 배정은 다음 세 조건을 지켜야 한다.
세 조건을 모두 지키면 용의자 전원을 감시하지 못할 수도 있다. ASA의 조직 구조와 용의자 명단을 입력으로 받아 감시자를 배정할 수 있는 용의자의 최대 수를 구하는 프로그램을 작성하라.
다음 그림은 최고 관리자가 두 명이고 요원이 열한 명인 ASA의 조직 구조이며, 용의자는 회색으로 칠했다. 이 경우 화살표처럼 용의자 여덟 명 중 일곱 명에게 감시자를 붙일 수 있다. 요원 x에서 요원 y로 가는 화살표는 x가 y를 감시한다는 뜻이다. 이 예에서는 용의자 전원을 감시하는 배정이 존재하지 않음을 보일 수 있다.

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 요원 수 n (1≤n≤10000)과 용의자 수 k (1≤k≤n)가 주어진다. 요원은 1번부터 n번까지 번호가 붙어 있다. 둘째 줄에는 n개의 정수가 공백으로 구분되어 주어진다. i번째 수는 요원 i의 상관 번호이고, 0은 요원 i가 최고 관리자라는 뜻이다. 셋째 줄에는 용의자의 번호 s1,s2,…,sk가 주어진다. 입력의 마지막 줄은 0 0이며, 이 줄은 처리하지 않는다.
테스트 케이스마다 감시자를 배정할 수 있는 용의자의 최대 수를 한 줄에 출력한다.