Зрадник
Згідно з даними розвідки, в Агентстві Безпеки ACM (ASA) є зрадник. ASA має ієрархічну структуру, де кожен агент має свого менеджера, а також є кілька (принаймні один) топ-менеджерів, які не підпорядковуються нікому. Наше джерело не знає точно, хто є зрадником, але має список підозрюваних. Отже, ми знаємо, що в агентстві є рівно один зрадник, і у нас є список підозрюваних. Щоб виявити зрадника, ми хочемо призначити спостерігача для кожного підозрюваного, дотримуючись наступних умов:
Два підозрюваних не можуть спостерігати один за одним.
Кожен підозрюваний повинен бути під наглядом або свого менеджера, або одного зі своїх безпосередніх підлеглих.
Ніхто не може спостерігати більше ніж за одним підозрюваним.
Якщо ми хочемо дотриматися всіх цих умов, може виявитися неможливим спостерігати за всіма підозрюваними. Тому вам потрібно написати програму, яка отримує структуру ASA та список підозрюваних як вхідні дані і визначає максимальну кількість підозрюваних, для яких можна призначити спостерігача. На наступному рисунку, що ілюструє організаційну структуру ASA з двома топ-менеджерами та одинадцятьма агентами, підозрювані позначені сірим кольором. У цьому випадку можливе призначення спостерігачів для 7 з 8 підозрюваних, що показано стрілками. Стрілка від агента x до агента y означає, що агент x повинен спостерігати за агентом y. Можна показати, що в цьому прикладі немає призначення спостерігачів, яке покриває всіх підозрюваних.
Вхідні дані
Вхідні дані містять кілька тестових випадків. Перша строка кожного тестового випадку містить два цілі числа n (1 ≤ n ≤ 10000), що вказують кількість агентів, і k (1 ≤ k ≤ n), що вказують кількість підозрюваних агентів. Агенти пронумеровані від 1 до n. У другій строкі знаходяться n цілі числа, розділені пробілами, де i-те число - це номер агента, який є менеджером агента i. Нуль означає, що агент i є топ-менеджером. У третій строкі знаходяться k позитивних чисел s_1, s_2, ..., s_k, що вказують номери підозрюваних агентів. Вхідні дані завершуються "0 0", що не повинно оброблятися.
Вихідні дані
Для кожного тестового випадку виведіть в одному рядку максимальну кількість підозрюваних, для яких можливе призначення спостерігача.