Дано кореневе дерево з вершин, де коренем є вершина . У кожній вершині записано ціле число.
Ми будуємо масив за допомогою такої рекурсивної процедури:
dfs(v):
записати число у вершині v в кінець масиву a
вибрати довільний порядок синів вершини v
для кожного сина u у вибраному порядку:
dfs(u)Спочатку викликається .
Зауважимо, що порядок синів у кожній вершині можна вибирати довільно, тому залежно від цього масив може бути різним.
Назвемо елемент a_i префіксним максимумом, якщо він строго більший за всі попередні елементи масиву. Перший елемент масиву також вважається префіксним максимумом.
Необхідно знайти максимальну можливу кількість префіксних максимумів у масиві .
В першому рядку задано число (1 \le n \le 2 \cdot 10^5) — кількість вершин в дереві.
В другому рядку задано масив (1 \le a_i \le 10^9) — значення які записані в вершинах.
В наступних n-1 рядках задано два числа, та (1 \le u , v \le n) — ребра в дереві
Вивести одне число — максимальну можливу кількість префіксних максимумів у масиві .
Приклад 1
В першому тестовому випадку маємо таке дерево.
Після вибору найвигіднішого обходу будемо мати наступний масив [5 , 2 , 3 , 6 , 8 , 7 , 9].
Префіксними максимумами для цього масиву будуть [5,6,8,9].
Підзадача ( балів) : (n \le 10)
Підзадача ( балів) : (a_i \le 10)
Підзадача ( балів) : (v = u-1)
Підзадача ( балів) : (u = 1)
Підзадача ( балів) : (n \le 100)
Підзадача ( балів) : (n \le 500)
Підзадача ( балів) : (n \le 2000)
Підзадача ( балів) : (n \le 75000)
Підзадача ( балів) : Без додаткових обмежень