Подборка задач с Интернет олимпиад сезона 2019-20
A. Деревянный замок
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Чтобы попасть в заброшенный дом, в котором прячется Оно, ребятам нужно открыть дверь с хитроумным замком. Этот замок представляет собой дерево из $$$n$$$ вершин, каждая из которых покрашена в белый или черный цвет. Чтобы открыть замок, нужно уничтожить все вершины этого дерева. Для этого ребята могут выполнять две операции:

  1. Перекрасить еще не уничтоженную вершину из белого в черный, или из черного в белый.
  2. Запустить цепную реакцию, уничтожающую группу связных вершин одного цвета. Формально, ребята могут выбрать любую еще не уничтоженную вершину цвета $$$c$$$, уничтожить ее и все вершины цвета $$$c$$$, достижимые из нее по еще не уничтоженным вершинам цвета $$$c$$$.

Разумеется, ребятам хочется поскорее попасть в дом, поэтому им интересно узнать, какое минимальное количество операций им потребуется, чтобы открыть замок.

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

В первый строке дано целое число $$$n$$$ — количество вершин в графе ($$$1 \le n \le 200\,000$$$). В следующей строке дана строка $$$s$$$ длины $$$n$$$ из символов $$$0$$$ и $$$1$$$. Если $$$i$$$-й символ строки $$$s$$$ равен $$$0$$$, то $$$i$$$-я вершина покрашена в белый цвет, иначе — в черный. В следующих $$$n - 1$$$ строках дано по два целых числа $$$a_i$$$ и $$$b_i$$$ — ребра дерева ($$$1 \le a_i, b_i \le n$$$).

Гарантируется, что ребра образуют дерево.

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

Выведите одно число — минимальное количество операций, необходимое, чтобы открыть замок.

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

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

  1. Перекрасить вершину $$$1$$$ в белый цвет.
  2. Запустить цепную реакцию из вершины $$$1$$$, она уничтожит все вершины.

B. Безумный танец
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Джокер известен своей безумностью. Именно из-за нее он использует систему счисления с основанием $$$a$$$, в которой все числа состоят из цифр от $$$0$$$ до $$$a - 1$$$. Также Джокер очень любит танцевать. Он может танцевать очень долго, поэтому он придумал для себя правило, которое не даст ему танцевать бесконечно. Конечно же, правило тоже странное: когда Джокер танцует, каждую секунду, начиная с первой, он произносит вслух число секунд, прошедшее с начала танца (разумеется, он произносит это число в $$$a$$$-ичной системе счисления), без ведущих нулей. Например, если $$$a = 3$$$, первые пять чисел, которые произнесет Джокер, будут следующими:

  • Спустя секунду после начала: $$$1$$$
  • Спустя две секунды после начала: $$$2$$$
  • Спустя три секунды после начала: $$$10$$$
  • Спустя четыре секунды после начала: $$$11$$$
  • Спустя пять секунд после начала: $$$12$$$

Джокер выбрал массив $$$b_i$$$, состоящий из $$$a$$$ целых неотрицательных чисел, и решил останавливать свой танец, если после очередного произнесенного числа, он, за все время танца, ровно $$$b_i$$$ раз произнес цифру $$$i$$$ для всех $$$0 \le i \lt a$$$. Помогите ему определить, сколько секунд будет длиться его танец, или же сообщите, что он будет танцевать вечно.

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

В первой строке дано число $$$a$$$ — основание системы исчисления ($$$2 \le a \le 100\,000$$$). Во второй строке дано $$$a$$$ целых чисел $$$b_i$$$ ($$$0 \le b_i \le 10^9$$$).

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

Если Джокер никогда не закончит свой танец, выведите $$$-1$$$. Иначе выведите продолжительность его танца в секундах.

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

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

Малефисента очень расстроилась, когда не смогла отменить наложенное на Аврору заклятье, потому что оно вечно и нерушимо. К счастью, для нас это не такая большая проблема, потому что в нашей версии сказки все заклятья описываются математически и снимаются заметно проще.

Заклятье описывается двумы натуральными числами $$$a$$$ и $$$b$$$. Процесс снятия заклятья происходит следующим образом:

  1. Перемножить числа от $$$a$$$ до $$$b$$$ включительно
  2. Взять сумму цифр полученного числа
  3. Если результат не меньше $$$10$$$, вернуться к пункту $$$2$$$

Для того, чтобы завершить ритуал снятия заклятья, нужно назвать получившееся в конце число. Помогите Малефисенте вычислить его.

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

В первой строке дано число $$$a$$$, на второй — число $$$b$$$ ($$$1 \le a \le b \lt 10^{100\,000}$$$). Оба числа даны без ведущих нулей.

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

Выведите число, которое получится в конце процесса снятия заклятья.

Примеры
Входные данные
1
5
Выходные данные
3
Входные данные
6
8
Выходные данные
3

D. Хорошее подмножество
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

«Клубу неудачников» после победы над Пеннивайзом почти удалось сбежать из заброшенного дома, осталось только решить кодовый замок на двери.

На кодовом замке написано $$$n$$$ натуральных чисел $$$a_1, a_2, \ldots, a_n$$$. И чтобы открыть его, нужно найти размер наибольшего подмножества этих чисел, что НОД чисел в подмножестве строго больше единицы. НОД множества чисел — это наибольшее натуральное число, делящее все числа из множества.

Помогите героям справиться с этой задачей!

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

В первой строке дано одно целое число $$$n$$$ ($$$1 \leq n \leq 1000$$$) — количество натуральных чисел.

Во второй строке даны $$$n$$$ натуральных чисел $$$a_i$$$ ($$$2 \leq a_i \leq 10^{18}$$$).

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

Выведите одно целое число — размер наибольшего подмножества данных чисел, что НОД чисел в этом подмножестве строго больше единицы.

Примеры
Входные данные
4
6 15 10 42
Выходные данные
3
Входные данные
3
2 2 2
Выходные данные
3
Входные данные
1
35
Выходные данные
1
Примечание

В первом тесте можно выбрать множество $$$\{6, 15, 42\}$$$, НОД чисел в этом множестве равен $$$3$$$.

Условие недоступно на русском языке
F. Арифметика и кубики
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Авроры есть $$$n$$$ кубиков. У каждого кубика есть шесть сторон, на каждой из которых написана цифра от $$$0$$$ до $$$9$$$. Цифры на одном кубике могут повторяться.

Феи решили научить Аврору арифметике, и дали задание — собирать из кубиков числа. Аврора может выбрать произвольный набор кубиков, повернуть каждый кубик из набора произвольной стороной вверх и расставить их в произвольном порядке, чтобы получить желаемое число. Конечно же, Аврора собирает число без ведущих нулей.

Теперь, чтобы Аврора научилась считать, феи хотят попросить её по-очереди складывать натуральные числа в порядке возрастания. Кубики, использованные для складывания одного числа, могут быть использованы и для складывания следующих чисел. Помогите феям определить минимальное натуральное число, которое Аврора не сможет сложить, используя данный набор кубиков.

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

В первой строке дано целое число $$$n$$$ — количество кубиков ($$$1 \le n \le 100\,000$$$).

В каждой из следующих $$$n$$$ строк дана строка из шести цифр $$$a_{i,1}, a_{i,2}, \ldots, a_{i,6}$$$ ($$$0 \le a_{i,j} \le 9$$$).

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

Выведите наименьшее натуральное число, которое Аврора не сможет сложить.

Примеры
Входные данные
2
012345
098765
Выходные данные
11
Входные данные
3
123456
789012
345678
Выходные данные
90
Входные данные
5
111111
222222
333333
444444
555555
Выходные данные
6

G. Безумные расстановки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У Джокера есть дерево, в котором он выбрал $$$m$$$ простых путей: $$$(u_1, v_1)$$$, $$$(u_2, v_2)$$$, $$$\ldots$$$, $$$(u_m, v_m)$$$ — каждый путь задается двумя вершинами $$$u_i$$$ и $$$v_i$$$, лежащими на его концах. Причем все пути имеют ненулевую длину, то есть $$$u_i \neq v_i$$$.

Теперь Джокер хочет расставить на ребрах дерева веса — целые числа $$$0$$$ или $$$1$$$. Обозначим $$$s_i$$$ сумму весов ребер на $$$i$$$-м пути по модулю $$$2$$$ (иначе говоря, исключающее ИЛИ весов всех ребер на этом пути). Джокер называет расстановку весов на ребрах безумной, если выполняется неравенство $$$s_{i} \le s_{i+1}$$$ для всех $$$1 \le i \lt m$$$.

Ваша задача — посчитать количество безумных расстановок весов на ребрах. Так как Джокер сумашедший, он попросил вас найти остаток от деления этого числа на $$$998\,244\,353$$$.

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

В первой строке даны два целых числа $$$n$$$ и $$$m$$$ — количество вершин в дереве и количество выбранных путей ($$$2 \le n, m \le 250\,000$$$).

Во второй строке дано $$$n - 1$$$ целое число $$$p_i$$$, обозначающее, что в дереве есть ребро между вершинами с номерами $$$p_i$$$ и $$$i + 1$$$ ($$$1 \le p_i \lt i + 1$$$).

В следующих $$$m$$$ строках дано по два целых числа $$$u_i$$$ и $$$v_i$$$ — концы $$$i$$$-го пути ($$$1 \leq u_i \lt v_i \leq n$$$).

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

Выведите одно целое число — количество безумных расстановок весов на ребрах по модулю $$$998\,244\,353$$$.

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

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

Не только Сэм занимается тем, что строит дороги. Сегодня он повстречал другого человека, который занимается тем же. Они быстро нашли общий язык, и решили сыграть в игру.

Сейчас они строят прямоугольную часть дороги размерами $$$n$$$ на $$$m$$$ метров. Представим её в виде клетчатого поля $$$n \times m$$$. Перед началом игры, ни одна клетка этого поля ещё не построена. Игроки ходят по-очереди. За ход игрок может выбрать на поле любой прямоугольник с площадью не превышающей $$$s$$$, ни одна клетка которого ещё не построена, и построить все клетки внутри выбранного прямоугольника. Проигрывает игрок, который не может сделать ход. Сэм ходит первым. Помогите ему определить, выиграет ли он, при условии, что оба игрока стремятся выиграть и играют оптимально.

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

В первой строке даны три целых числа $$$n$$$, $$$m$$$ и $$$s$$$ ($$$1 \le n, m \le 1\,000$$$, $$$1 \le s \le n \cdot m$$$) — размеры поля и максимальная площадь прямоугольника, который можно построить за один ход.

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

Если Сэм может выиграть, в единственной строке выведите «YES». Иначе, выведите «NO».

Пример
Входные данные
1 4 2
Выходные данные
YES

I. Счёт в теннисе
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Аврора и Нотграсс решили сыграть в теннис и попросили Флитл побыть судьёй. Изначально их счет равнялся $$$0 : 0$$$. Затем, несколько раз очки одного из игроков увеличивались на $$$1$$$. А закончилась игра со счётом $$$a : b$$$.

Фислвит было скучно, поэтому она считала сумму НОД-ов очков игроков после каждого изменения счёта. НОД — наибольший общий делитель двух чисел. Например, игра могла проходить так:

  • $$$0 : 0$$$
  • $$$1 : 0$$$, $$$\textrm{НОД}(1, 0) = 1$$$
  • $$$2 : 0$$$, $$$\textrm{НОД}(2, 0) = 2$$$
  • $$$2 : 1$$$, $$$\textrm{НОД}(2, 1) = 1$$$
  • $$$2 : 2$$$, $$$\textrm{НОД}(2, 2) = 2$$$
  • $$$2 : 3$$$, $$$\textrm{НОД}(2, 3) = 1$$$

В таком случае, у Фислвит получилась бы сумма $$$1 + 2 + 1 + 2 + 1 = 7$$$.

После игры Фислвит стало интересно, какое наименьшее число могло у неё получиться. Помогите ей найти это значение.

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

В единственной строке даны два целых числа $$$a$$$ и $$$b$$$ — финальные очки Авроры и Нотграсс соответственно ($$$0 \le a, b \le 10^9$$$).

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

Выведите единственное целое число — минимальное значение, которое могло получиться у Фислвит.

Примеры
Входные данные
2 1
Выходные данные
3
Входные данные
4 6
Выходные данные
11
Входные данные
0 0
Выходные данные
0
Входные данные
10 10
Выходные данные
31

J. Свадьба
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сегодня у Филиппа и Авроры свадьба, на которую приглашены все феи Топких Болот. Аврора слегка заскучала и решила понаблюдать за общением фей.

Исходно на свадьбе находится $$$n$$$ фей, Аврора пронумеровала их от $$$1$$$ до $$$n$$$. Фея номер $$$i$$$ характеризуется своей общительностью — целым неотрицательным числом $$$a_i$$$.

За время наблюдения, Аврора видела $$$q$$$ интересных моментов. Во время $$$j$$$-го из них происходило событие одного из трех типов:

  1. На свадьбу приходит фея с общительностью $$$v_j$$$. Аврора назначает ей первый неиспользованный ранее номер. Например, первая пришедшая фея получит номер $$$n + 1$$$, следующая — $$$n + 2$$$ и так далее.
  2. Фея с номером $$$p_j$$$ покидает свадьбу.
  3. На свадьбе объявляется танец, характеризующийся своей экспрессивностью $$$e_j$$$ — целым неотрицательным числом. После танца, общительности всех фей изменяются. Если до танца фея имела общительность $$$b$$$, то после ее общительность станет равна $$$b \oplus e_j$$$, то есть побитовому исключающему ИЛИ чисел $$$b$$$ и $$$e_j$$$.

Аврору очень интересует, насколько интенсивно феи общаются. Для этого она хочет после каждого из событий определять суммарный уровень общительности всех фей, присутствующих на свадьбе. Помогите Авроре справиться с этой нелегкой задачей.

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

В первой строке даны два целых числа $$$n$$$ и $$$q$$$ — количество фей, исходно находящихся на свадьбе, и количество интересных моментов в наблюдении Авроры ($$$1 \le n, q \le 100\,000$$$).

Во второй строке даны $$$n$$$ целых чисел $$$a_i$$$ — значения общительности фей, исходно находящихся на свадьбе ($$$1 \le a_i \le 10^9$$$).

В следующих $$$q$$$ строках даны описания интересных моментов. Каждая из них начинается с целого числа $$$t_j$$$ — типа события ($$$t_j \in \{1, 2, 3\}$$$).

  • Если $$$t_j = 1$$$, то далее дано целое число $$$v_j$$$ — общительность пришедшей феи ($$$1 \le v_j \le 10^9$$$). Пришедшая фея получает первый неиспользованный ранее номер.
  • Если $$$t_j = 2$$$, то далее дано целое число $$$p_j$$$, означающее, что фея с номером $$$p_j$$$ покидает свадьбу. Гарантируется, что в этот момент фея с номером $$$p_j$$$ присутствовала на свадьбе.
  • Если $$$t_j = 3$$$, то далее дано целое число $$$e_j$$$ — экспрессивность танца ($$$1 \le e_j \le 10^9$$$).
Выходные данные

После каждого события выведите сумму значений общительности всех фей, находящихся на свадьбе.

Пример
Входные данные
6 5
2 3 9 5 6 6
1 3
3 5
2 2
3 2
2 7
Выходные данные
34
37
31
27
23

K. Побег из заброшенного дома
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

«Клуб неудачников» под предводительством Билла пытается сбежать из заброшенного дома, в котором на них напал Пеннивайз. Дом можно представить в виде таблицы размера $$$n \times m$$$, каждая клетка которой либо свободна, либо занята стенкой. Изначально, компания друзей находится в некоторой свободной клетке, а выход из дома находится в другой свободной клетке. Друзья могут переходить между соседними по стороне свободными клетками.

Чтобы напугать друзей и не дать им успешно убежать, Пеннивайз постоянно меняет температуру воздуха. А именно, каждый раз, когда друзья переходят между двумя клетками, соседними по горизонтали, он уменьшает температуру на 1 градус, а когда переходят между двумя клетками, соседними по вертикали, увеличивает температуру на 1 градус. Температура воздуха может принимать любые целочисленные значения, в том числе, температура может быть отрицательной.

Друзья хотят, чтобы конечная температура воздуха, когда они выберутся из дома, как можно меньше отличалась от исходной температуры воздуха. Помогите им определить минимальное возможное отличие исходной температуры от конечной. Обратите внимание, что значения температуры воздуха во время нахождения друзей в доме, их не интересует. При необходимости, друзья могут несколько раз проходить через любые свободные клетки, в том числе стартовую клетку и клетку с выходом.

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

В первой строке даны два целых числа $$$n$$$ и $$$m$$$ — размеры таблицы ($$$1 \le n, m \le 1000$$$). В следующих $$$n$$$ строках находится по $$$m$$$ символов — описание таблицы. Описание состоит из символов «.», «#», «s» и «f». Если $$$j$$$-й символ в $$$i$$$-й строке равен «#», то в клетке $$$(i, j)$$$ находится стенка, иначе эта клетка свободна. Символ «s» обозначает стартовую позицию друзей, а символ «f» обозначает клетку, в которой находится выход. Гарантируется, что в таблице содержится ровно один символ «s» и ровно один символ «f».

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

Если друзья не смогут выбраться из дома, выведите -1. Иначе, выведите неотрицательное число — минимальное возможное отличие исходной температуры от конечной, которого они могут добиться.

Пример
Входные данные
4 3
..f
..#
s##
...
Выходные данные
0
Примечание

В первом тесте друзья могут сначала перейти два раза в клетку сверху, и потом два раза в клетку справа. Тогда, сначала температура увеличится на 2, а после — уменьшится на 2. В итоге, отличие от исходной будет $$$0$$$ градусов.

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

Для победы над злобным клоуном в финальном сражении, Майк созвал всех своих друзей. Осталось только определиться с тактикой ведения боя, и победа в кармане.

Всего в бою будет участвовать $$$n$$$ друзей. Для эффективности ведения боя пронумеруем их от $$$1$$$ до $$$n$$$. Исходно друзья выстроились в ряд, причем на $$$i$$$-е место в ряду встал друг с номером $$$a_i$$$. После долгих размышлений, Майк пришел к выводу, что наиболее эффективное расположение друзей будет достигнуто, если на $$$i$$$-м месте в ряду будет стоять друг с номером $$$b_i$$$.

Для того, чтобы изменить порядок друзей в ряду, Майк может совершить несколько перестроений. Каждое перестроение происходит следующим образом: Майк выбирает некоторое непустое подмножество друзей, после чего эти друзья выходят из ряда и встают в его начало в порядке, обратном тому, в котором они стояли исходно. При этом порядок друзей, которые остались стоять в ряду, не меняется.

Например, если друзья стояли в порядке $$$3, 4, 7, 6, 2, 5, 1$$$, а Майк выбрал друзей с номерами $$$4, 7, 5$$$, после перестроения друзья будут стоять в порядке $$$5, 7, 4, 3, 6, 2, 1$$$.

Бой с Пеннивайзом начнется довольно скоро, поэтому Майк хочет расположить друзей в желаемом порядке не более, чем за $$$15$$$ перестроений. Помогите ему справиться с этой задачей!

Обратите внимание, что минимизировать количество перестроений не требуется. Гарантируется, что, за не более чем $$$15$$$ перестроений, добиться желаемого порядка возможно.

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

В первой строке дано одно целое число $$$n$$$ — количество друзей в ряду ($$$1 \le n \le 10\,000$$$).

Вторая строка содержит $$$n$$$ различных целых чисел $$$a_i$$$ от $$$1$$$ до $$$n$$$ — исходный порядок друзей в ряду ($$$1 \le a_i \le n$$$). Третья строка содержит $$$n$$$ различных целых чисел $$$b_i$$$ от $$$1$$$ до $$$n$$$ — желаемый порядок друзей в ряду ($$$1 \le b_i \le n$$$).

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

В первой строке выведите целое число $$$k$$$ ($$$0 \le k \le 15$$$) — количество перестроений в найденном решении. В каждой из следующих $$$k$$$ строк выведите описание перестроений, которые необходимо совершить. Для каждого перестроения сначала выведите число $$$c_i$$$ — количество друзей, которые должны выйти из ряда ($$$1 \le c_i \le n$$$), а затем $$$c_i$$$ различных целых чисел от $$$1$$$ до $$$n$$$ — номера друзей, которые должны выйти из ряда. Номера можно выводить в произвольном порядке.

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

В первом тесте порядок друзей изменяется следующим образом:

$$$5, 4, 3, 2, 1 \rightarrow 1, 2, 3, 4, 5 \rightarrow 5, 1, 2, 3, 4 \rightarrow 4, 5, 1, 2, 3 \rightarrow 3, 4, 5, 1, 2$$$

Во втором тесте порядок друзей изменяется следующим образом:

$$$3, 4, 7, 6, 2, 5, 1 \rightarrow 5, 6, 7, 3, 4, 2, 1 \rightarrow 4, 3, 5, 6, 7, 2, 1 \rightarrow 2, 6, 3, 4, 5, 7, 1$$$

M. Магический XML
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Развлекаясь с ранее неизведанными заклинаниями, Малефисента случайно получила свиток с посланием из будущего. На свитке было написано какое-то занимательное заклинание.


<note>
<to></to>
<from></from>
<heading></heading>
<body></body>
</note>

Малефисента сразу заметила несколько закономерностей. А именно: заклинание представляет из себя правильную скобочную последовательность, в которой открывающаяся скобка соответствует шаблону «<S>», а парная ей закрывающаяся — шаблону «</S>», где строка S — непустая строка из строчных латинских букв, равная для парных скобок.

У Малефисенты как раз оказалось старое неработающее заклинание. Она решила проверить, можно ли в нем переставить символы так, чтобы получившееся заклинание удовлетворяло тем же свойствам, что заклинание на свитке из будущего. Помогите Малефисенте переставить символы в ее заклинании желаемым образом, либо сообщите, что это невозможно.

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

В единственной строке дана строка $$$s$$$, состоящая из строчных латинских букв и символов «<», «>» и «/» — заклинание Малефисенты ($$$1 \le |s| \le 100\,000$$$).

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

Если переставить символы желаемым образом невозможно, выведите «Impossible».

Иначе, выведите строку, полученную из исходной перестановкой символов, которая удовлетворяет желаемым свойствам.

Примеры
Входные данные
<test></test>
Выходные данные
<test></test>
Входные данные
test<tist>/<>
Выходные данные
Impossible
Входные данные
te<ste>st/<t>
Выходные данные
<tset></tset>
Входные данные
<>test<>//<>test<>
Выходные данные
<te><st></st></te>