Планується відправити експедицію до сусідньої зоряної системи. Були відібрані ~n~ кандидатів, пронумерованих від 1 до ~n~, серед яких необхідно вибрати учасників експедиції. Організатори хочуть відправити у експедицію якомога більше кандидатів. Серед кандидатів було проведено опитування, в процесі якого кожен міг вказати не більше, ніж одного з інших кандидатів, з яким він не готовий відправитися в експедицію. Результатом опитування для ~i~-го кандидата є ціле число ~a_i~, яке дорівнює номеру кандидата, з яким ~i~-й кандидат не готовий відправитися в експедицію, або -1, якщо ~i~-й кандидат готовий відправитися в експедицію в будь-якому складі.
Тепер організатори повинні вибрати, хто з кандидатів відправиться в експедицію. Вирішено було вибрати учасників експедиції так, що якщо туди входить деякий кандидат ~i~, і ~a_i \neq -1~, то туди не входить кандидат ~a_i~. Організатори хочуть вибрати максимальну кількість учасників експедиції.
Потрібно написати програму, яка за заданими результатами опитування кандидатів визначає максимальну кількість кандидатів, яких можна відправити в експедицію.
Формат вхідних даних
У першому рядку вхідних даних знаходиться ціле число ~n~ - кількість кандидатів (~1 \le n \le 300 000~).
У наступних ~n~ рядках дано результати опитування, ~i~-й з цих рядків містить результат опитування ~i~-го кандидата, ціле число ~a_i~ (~a_i = -1~ або ~1 \le a_i \le n~, ~a_i \neq i~).
Формат вихідних даних
У єдиному рядку виведіть одне ціле число - максимальну кількість кандидатів, яких можна відправити в експедицію.
Scoring
Бали за кожну підзадачу нараховуються тільки у випадку, якщо всі тести для цієї підзадачі і необхідних підзадач успішно пройдені.
Підзадача 1: 19 балів, ~n \le 20~;
Підзадача 2: 10 балів, ~a_1 = -1~, для ~i > 1~ виконано ~a_i = i - 1~;
Підзадача 3: 15 балів, для всіх ~i~ виконано ~a_i < i~,
Підзадача 4: 13 балів, ~1 \le n \le 2000~,
Підзадача 5: 43 бали, ~1 \le n \le 300 000~,
Приклад вхідних даних
4
2
4
2
1
Приклад вихідних даних
2
Приклад вхідних даних
3
2
-1
2
Приклад вихідних даних
2
Коментарі