Плитка#11344

Плитка

3 секунди
256 мегабайтів
Легка

Художники по кераміці Марія і Жоау відкривають невеликий магазин азулежу в Порту. Азулежу — це гарна керамічна плитка, якою славиться Португалія. Марія і Жоау хочуть створити привабливу вітрину, але через обмежений простір у їхньому магазині зразки плитки доводиться розміщувати у два ряди на одній полиці. Перед кожною плиткою Жоау стоїть рівно одна плитка Марії, а за кожною плиткою Марії знаходиться рівно одна плитка Жоау. Ці плитки ручної роботи бувають різних розмірів, і важливо, щоб кожна плитка в задньому ряду була вищою за ту, що стоїть перед нею, щоб обидві були добре видні перехожим. Для зручності покупців плитки в кожному ряду розташовані в порядку незменшення ціни зліва направо. Плитки з однаковою ціною можуть розташовуватися в будь-якому порядку за умови дотримання вказаних вимог видимості.

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

Вхідні дані

Перший рядок містить ціле число (1 \le n \le 5 \cdot 10^5) — кількість плиток у кожному ряду.

Наступні чотири рядки містять по цілих чисел кожен: перші два рядки описують задній ряд плиток, наступні два — передній ряд. Плитки в кожному рядку пронумеровано від до у порядку їх слідування у вхідних даних.

Перший рядок з кожної пари містить числа p_1, \ldots, p_n (1 \le p_i \le 10^9) — ціни плиток у відповідному ряду.

Другий рядок з кожної пари містить числа h_1, \ldots, h_n (1 \le h_i \le 10^9) — висоти плиток з відповідними номерами.

Вихідні дані

Якщо існує допустимий порядок, виведіть два рядки по цілих чисел — перестановки номерів плиток від до .

Перший рядок повинен задавати порядок плиток у задньому ряду, другий — порядок плиток у передньому ряду.

Якщо існує декілька варіантів, виведіть будь-який з них.

Якщо підходящого порядку не існує, виведіть impossible.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading