F. Двойная сортировка II
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Даны две перестановки $$$a$$$ и $$$b$$$, обе размера $$$n$$$. Перестановка размера $$$n$$$ — это массив из $$$n$$$ элементов, в который каждое целое число от $$$1$$$ до $$$n$$$ входит ровно один раз. Элементы в каждой перестановке пронумерованы от $$$1$$$ до $$$n$$$.

Вы можете выполнять следующую операцию любое количество раз:

  • выбрать целое число $$$i$$$ от $$$1$$$ до $$$n$$$;
  • обозначим за $$$x$$$ такое целое число, что $$$a_x = i$$$. Поменять местами $$$a_i$$$ и $$$a_x$$$;
  • обозначим за $$$y$$$ такое целое число, что $$$b_y = i$$$. Поменять местами $$$b_i$$$ и $$$b_y$$$.

Вы должны отсортировать обе перестановки в порядке возрастания (то есть должны выполняться условия $$$a_1 < a_2 < \dots < a_n$$$ и $$$b_1 < b_2 < \dots < b_n$$$) за минимальное количество операций. Обратите внимание, что обе перестановки должны быть отсортированы после того, как вы выполните выбранную вами последовательность операций.

Входные данные

В первой строке задано одно целое число $$$n$$$ ($$$2 \le n \le 3000$$$).

Во второй строке заданы $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le n$$$; все $$$a_i$$$ различны).

В третьей строке заданы $$$n$$$ целых чисел $$$b_1, b_2, \dots, b_n$$$ ($$$1 \le b_i \le n$$$; все $$$b_i$$$ различны).

Выходные данные

Сначала выведите одно целое число $$$k$$$ ($$$0 \le k \le 2n$$$) — минимальное количество операций, за которое можно отсортировать обе перестановки. Обратите внимание: можно показать, что $$$2n$$$ операций всегда достаточно.

Затем выведите $$$k$$$ целых чисел $$$op_1, op_2, \dots, op_k$$$ ($$$1 \le op_j \le n$$$), где $$$op_j$$$ — значение $$$i$$$, выбранное для $$$j$$$-й операции.

Если ответов несколько, выведите любой из них.

Примеры
Входные данные
5
1 3 2 4 5
2 1 3 4 5
Выходные данные
1
2 
Входные данные
2
1 2
1 2
Выходные данные
0

Входные данные
4
1 3 4 2
4 3 2 1
Выходные данные
2
3 4