Ядро лицарів#7782

Ядро лицарів

1 секунда
256 мегабайтів
Дуже легка

Лицарський середньовічний конкурс полягає в тому, що учасники на конях намагаються вдарити один одного дерев'яними списами під час швидкої їзди. У турнірі беруть участь загалом лицарів — по лицарів з кожного з двох великих конкуруючих домів. Прибувши на турнір, кожен лицар викликав на дуель одного лицаря з іншого дому.

Ядро визначається як певна підмножина лицарів, яка задовольняє наступні дві умови:

За заданою множиною викликів на дуелі знайдіть ядро. Гарантується, що ядро завжди існує.

Вхідні дані

Перший рядок містить число n~(1 \le n \le 10^5) — кількість лицарів з кожного дому. Лицарі з першого дому позначаються числами від до , лицарі з іншого дому — числами від n + 1 до .

Другий рядок містить цілі числа f_1, f_2, ..., f_n, де -е число f_k — це номер лицаря, викликаного на дуель лицарем k~(n + 1 \le f_k \le 2n).

Третій рядок містить цілі числа s_1, s_2, ..., s_n, де -е число s_k — це номер лицаря, викликаного на дуель лицарем n + k~(1 \le s_k \le n).

Вихідні дані

Виведіть номери лицарів у ядрі в одному рядку. Якщо існує більше одного розв'язку, виведіть будь-який.

Приклади

Приклад 1

Loading
Loading