Цікава#9096

Цікава

1 секунда
64 мегабайти
Дуже складна

Леді вигадала задачу.

Задано масив з невід'ємних чисел.

Дозволяється поміняти місцями деякі пари елементів масиву, але міняти позицію кожного елементу дозволяється не більше одного разу. У результаті цих змін буде отримано масив .

Масив розміру визначимо наступним чином: 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

Loading
Loading

Примітка

У першій задачі неможливо поміняти місцями елементи підмасиву.

У другій задачі для досягнення оптимального результату не потрібно поміняти місцями елементи підмасиву.

У третій задачі для досягнення оптимального результату потрібно поміняти місцями елементи та .

У четвертій задачі одним з можливих рішень є наступне: потрібно поміняти місцями наступні пари , та .

Вираз x \oplus y означає застосування побітової операції XOR до чисел і . Дана операція існує у всіх сучасних мовах програмування, наприклад, у мовах C++ і Java вона позначена як «^», а в Pascal як «xor».