eolymp
bolt
Try our new interface for solving problems
Problems

Цiкава

Цiкава

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

Задано масив a з n невiд’ємних чисел.

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

Масив c розмiру n визначимо наступним чином: c[i] = min(ai, bi).

Вiдповiддю до такої задачi є мiнiмальне можливе значення c1c2 ⊕ . . . ⊕ cn.

У Ледi є m пiдмасивiв, на кожен з яких вона хоче знайти вiдповiдь. Допоможiть, будь ласка, їй це зробити!

Зауважте, що розв’язувати цi m задач потрiбно незалежно.

Формат вхiдних даних

Перший рядок мiстить два цiлi числа n та m (**1 ≤ n, m ≤ 150 000**) — кiлькiсть чисел та кiлькiсть задач.

Другий рядок мiстить n цiлих чисел a1, a2, . . . , an (**0 ≤ ai < 230**) — числа.

Кожен з наступних m рядкiв мiстить по два цiлi числа l та r (**1 ≤ l ≤ r ≤ n**), що означає, що Вам потрiбно рiшити задачу для пiдмасиву [**al , al+1, . . . , ar**].

Формат вихiдних даних

Виведiть m цiлих чисел — вiдповiдi на задачi.

Примiтка

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

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

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

У четвертiй задачi одним з можливих рiшень є наступне: потрiбно помiняти мiсцями наступнi пари (**1, 3**), (**2, 6**) та (**4, 5**).


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

Time limit 1 second
Memory limit 64 MiB
Input example #1
6 4
1 2 3 4 5 6
1 1
3 5
4 6
1 6
Output example #1
1
2
4
0
Source 2019-2020 ACM-ICPC, SEERC, 1/4 фiналу, Днiпро, Київ, Львiв, Миколаїв, Тернопiль, Харкiв, 14 вересня 2019