Ксоня та дерево
У Ксоні є кореневе дерево з вершин з коренем у вершині , де на кожній вершині записано число. На -й вершині записано число .
Нагадаємо, що деревом називається зв'язний граф без циклів. Кореневим деревом називається дерево, в якому вибрана одна вершина — корінь.
Предком вершини в кореневому дереві називають усі вершини, які лежать на шляху від до кореня крім самої вершини . Піддеревом вершини називають множину всіх вершин, для яких є предком і саму вершину .
XOR сумою множини називається число , де — операція побітової виключної диз'юнкції, яка позначається як «xor» в мові Pascal і «^» в мовах C++/Java/Python.
Для множини чисел розглянемо множину XOR-сум усіх можливих підмножин . Назвемо цю множину .
Друг Ксоні постійно питає в неї питання — "Якщо розглянути множину всіх чисел, записаних в піддереві вершини (назвемо її ), то яке число в множині буде -е за зростанням?". Тобто, якщо взяти всі числа з піддерева вершини , розглянути всі XOR-суми їх підмножин, то яке число в отриманій множині буде на -му місці за зростанням? Якщо такого числа немає (), то Ксоня відповідає числом . Зверніть увагу, що — множина, а не мультимножина. Тобто, якщо одне число зустрічається кілька разів, то його потрібно враховувати лише один раз.
Також, іноді друг Ксоні просить її змінити одне з чисел в дереві.
Вхідні дані
Перший рядок містить два цілі числа (, ) — кількість вершин в дереві та номер групи.
Кожен з наступних рядків містить по два цілі числа (). Це означає, що в дереві проведено ребро між вершинами і . Гарантується, що граф — дерево.
Наступний рядок містить цілих чисел () — масив початкових чисел на вершинах дерева.
Наступний рядок містить одне ціле число () — кількість запитів.
Кожен з наступних рядків описує один запит.
Запити на зміну числа в дереві мають вигляд (, ). Такий запит означає, що тепер на -й вершині записано число .
Запити іншого типу мають вигляд (, ). Такий запит означає, що потрібно знайти -те за зростанням число у множині , де — множина чисел в піддереві вершини , а — множина усіх можливих XOR-сум її підмножин. Якщо , виведіть .
Вихідні дані
На кожний запит другого типу виведіть відповідь в окремому рядку.
Приклади
Примітка
Пояснення першого прикладу. Числа біля вершин — .
В першому запиті розглядається піддерево вершини . Воно містить числа .
.
В другому запиті розглядається все піддерево. .
Після зміни одного числа дерево має такий вигляд.
Тепер в піддереві вершини числа .
.
Оцінювання
( балів): .
( балів): .
( балів): .
( балів): У всіх запитах другого типу .
( балів): Немає запитів на зміну числа.
( балів): Всі — степені числа 2.
( балів): Без додаткових обмежень.