Дано зв'язний граф з вершинами та n-1 ребром, тобто дерево. Вершина є коренем дерева. На вершині записано ціле число a_v. Вартість дерева визначається як XOR сума всіх його значень. Дано запитів, кожен з яких містить два цілі числа та . Кожен запит змінює всі значення a_u на a_u \oplus x, де належить піддереву вершини , а позначає операцію "виключне або". Як ми всі знаємо, ця задача є дуже простою для наших учасників, але якби все було так просто, ця задача не з'явилася б на цій олімпіаді. Ви знаєте, що деякі запити були змінені злим Антоном. Тому вам потрібно знайти суму вартостей за модулем всіх 2^q дерев, які можна отримати, застосовуючи деякі (можливо, ніякі) запити до дерева.
Перший рядок містить два цілих числа (1 \le n \le 2 \cdot 10^5) та (1 \le q \le 2 \cdot 10^5) — кількість вершин у дереві та кількість запитів відповідно.
Другий рядок містить цілих чисел a_i (0 \le a_i < 2^{60}) — значення, записані на вершинах дерева.
Наступні n-1 рядки містять два цілих числа та кожен — ребра заданого дерева.
Наступні рядків містять два цілих числа (1 \le v \le n) та (0 \le x < 2^{60}) кожен — опис запитів.
Виведіть одне ціле число — відповідь на задачу.
Приклад 1
( балів): q \le 2;
( балів): q \le 10;
( балів): q \le 20;
( балів): a_i, x < 2;
( балів): a_i, x < 1024;
( балів): a_i, x < 2^{18};
( балів): без додаткових обмежень.