Леді вигадала задачу.
Задано масив з невід'ємних чисел.
Дозволяється поміняти місцями деякі пари елементів масиву, але міняти позицію кожного елементу дозволяється не більше одного разу. У результаті цих змін буде отримано масив .
Масив розміру визначимо наступним чином: c_i = \min(a_i, b_i).
Відповіддю до такої задачі є мінімальне можливе значення c_1 \oplus c_2 \oplus \ldots \oplus c_n.
У Леді є підмасивів, на кожен з яких вона хоче знайти відповідь. Допоможіть, будь ласка, їй це зробити!
Зауважте, що розв'язувати ці задач потрібно незалежно.
Перший рядок містить два цілих числа та (1 \leq n, m \leq 150\ 000) — кількість чисел та кількість задач.
Другий рядок містить цілих чисел a_1, a_2, \ldots, a_n (0 \leq a_i < 2^{30}) — числа.
Кожен з наступних рядків містить по два цілі числа та (1 \leq l \leq r \leq n), що означає, що Вам потрібно розв'язати задачу для підмасиву a_l, a_{l+1}, \ldots, a_r.
Виведіть цілих чисел — відповіді на задачі.
Приклад 1
У першій задачі неможливо поміняти місцями елементи підмасиву.
У другій задачі для досягнення оптимального результату не потрібно поміняти місцями елементи підмасиву.
У третій задачі для досягнення оптимального результату потрібно поміняти місцями елементи та .
У четвертій задачі одним з можливих рішень є наступне: потрібно поміняти місцями наступні пари , та .
Вираз x \oplus y означає застосування побітової операції XOR до чисел і . Дана операція існує у всіх сучасних мовах програмування, наприклад, у мовах C++ і Java вона позначена як «^», а в Pascal як «xor».