У задачі масиви нумеруються з .
Перестановка довжини — це масив додатних цілих чисел, де кожен елемент з'являється рівно один раз, і кожне число від до n - 1 присутнє. Наприклад, , [0, 2, 1], [0, 3, 1, 2] є перестановками, тоді як [0, 1, 3], , [0, 1, 0] — ні.
Ми визначаємо множину досяжних перетворень перестановки відносно множини як множину перестановок, які можна отримати з , застосовуючи наступну операцію будь-яку кількість разів (можливо, ):
Виберіть два індекси (0 \le i, j \le n - 1) так, щоб i \oplus j \in S, і поміняйте місцями елементи перестановки на позиціях та .
Тут позначає бітову операцію XOR.
Множина називається доброю відносно перестановки , якщо множина досяжних перетворень перестановки містить тотожну перестановку.
Ми називаємо перестановку довжини тотожною перестановкою, якщо для всіх (0 \le i \le m - 1) виконується a_i = i.
Краса перестановки визначається як мінімальний розмір доброї множини відносно неї.
Вам дана перестановка довжини . Вам потрібно вивести початкову красу перестановки. Вам також дано запитів. Кожен запит складається з двох чисел . Після кожного запиту вам потрібно поміняти місцями елементи на позиціях та . Зверніть увагу, що перестановка зберігає зміни після кожного запиту. У відповідь на кожен запит вам потрібно вивести красу отриманої перестановки.
Перший рядок містить два числа (1 \le n \le 5 \cdot 10^5) та (0 \le \beta \le 1).
Другий рядок містить чисел p_i (0 \le p_i < n) — початкова перестановка.
Третій рядок містить одне число (0 \le q \le 5 \cdot 10^5) — кількість запитів.
У наступних рядках наводяться два числа a_i', b_i' (0 \le a_i', b_i' \le n - 1) — параметри -го запиту.
Значення -го запиту визначаються наступним чином. Нехай — це відповідь на попередній запит або краса початкової перестановки, якщо це перший запит. Тоді:
У першому рядку виведіть красу початкової перестановки.
У наступних рядках виведіть відповіді на запити.
Приклад
Після другого запиту перестановка стає [5, 2, 1, 3, 4, 0, 6].
Нехай S = \{3, 6\}. Використовуючи цю множину, ми можемо виконати наступні обміни, щоб перетворити перестановку в тотожну перестановку:
Поміняйте місцями i = 0 та j = 3. Перестановка стає [\textbf{3}, 2, 1, \textbf{5}, 4, 0, 6].
Поміняйте місцями i = 3 та j = 5. Перестановка стає [3, 2, 1, \textbf{0}, 4, \textbf{5}, 6].
Поміняйте місцями i = 1 та j = 2. Перестановка стає [3, \textbf{1}, \textbf{2}, 0, 4, 5, 6].
Поміняйте місцями i = 0 та j = 3. Перестановка стає [\textbf{0}, 1, 2, \textbf{3}, 4, 5, 6].
Можна довести, що неможливо отримати тотожну перестановку, виконуючи операції з |S| \le 1.
( балів): n \le 8, \beta = 0;
( балів): n \le 32, q = 0, \beta = 0;
( балів): гарантовано, що відповідь не перевищує , \beta = 0;
( балів): n \cdot q \le 9 \cdot 10^6, \beta = 0;
( балів): q \le 10^4;
( балів): \beta = 0;
( балів): без додаткових обмежень.