Интернет-олимпиады, Сезон 2024-2025, Третья командная олимпиада
A. Крепление парусов
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Паруса закреплены $$$n$$$ узлами, каждый из которых может находиться в одном из трех состояний:

  • wet — в воде, без крепления к мачте;
  • ready — привязан к мачте, готов к использованию;
  • и bound — плотно привязан и закреплен, чтобы не оторваться от сильного ветра.

Сейчас все узлы находятся в состоянии 'w'. За одно действие Моана может выбрать отрезок поряд идущих номеров узлов и

  • перевести их все в состояние 'r';
  • перевести их все в состояние 'b', если ни один из них не находится в состоянии 'w'.

Вам дана последовательность из $$$q$$$ действий, которые Моане надо выполнить, но для каждого действия известно только в какое состояние надо перевести какой-то отрезок узлов (то есть вся последовательность задается строкой из букв 'r' и 'b').

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

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

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

Далее следует строка из $$$q$$$ символов, каждый из которых равен 'r' или 'b' и задает перевод очередного отрезка узлов в соответствующее состояние.

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

Выведите единственное число — количество различных конфигураций узлов после выполнения всей последовательности действий, по модулю $$$10^9 + 7$$$.

Примеры
Входные данные
2 1
r
Выходные данные
4
Входные данные
3 2
rb
Выходные данные
22
Входные данные
6 4
rbrb
Выходные данные
627
Примечание

В первом примере из условия единственным действием можно выбрать любой из четырех отрезков: пустой, $$$[1]$$$, $$$[2]$$$, $$$[1, 2]$$$.

Во втором примере возможны следующие конфигурации парусов: все белые, любой отрезок красный ($$$6$$$ вариантов), любой отрезок синий (еще $$$6$$$ вариантов), один красный и один синий рядом ($$$4$$$ варианта), и еще $$$5$$$ вариантов на случай, если первым действием выбрать отрезок $$$[1, 2, 3]$$$, а вторым — произвольный синий длины $$$1$$$ или $$$2$$$.

B. Догонялки на островах
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Моана пытается догнать Мауи, который отправился в отпуск по островам за рифом, чтобы забрать у него Сердце Те Фити.

За рифом находятся $$$n$$$ островов, между которыми можно перемещаться, используя двусторонние паромы местных туземцев с развитой инфраструктурой. Есть ровно $$$m$$$ маршрутов, $$$i$$$-й используется для поездки c острова $$$v_i$$$ на остров $$$u_i$$$ (и из $$$u_i$$$ в $$$v_i$$$) и стоит $$$w_i$$$ тугриков.

Моана знает, что Мауи собирается посетить все острова и расширить свой кругозор. Также Моана знает, что вождь каждого острова берет налог на его посещение (развитая инфраструктура требует тугриков). Налог посещения $$$i$$$-го острова составит $$$a_i$$$ тугриков.

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

Формально, для каждого $$$u \in [1, n]$$$ требуется посчитать $$$\min\limits_{v=1}^n 2 \mathtt{dist}(u, v) + a_v$$$, где $$$\mathtt{dist}(u, v)$$$ — минимальное количество тугриков, нужных для поездки с острова $$$u$$$ на остров $$$v$$$.

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

В первой строке записано два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 2 \cdot 10^5$$$; $$$1 \le m \le 2 \cdot 10^5$$$).

Затем идет $$$m$$$ строк, в $$$i$$$-й записаны три целых числа $$$v_i$$$, $$$u_i$$$ и $$$w_i$$$ ($$$1 \le v_i, u_i \le n$$$; $$$v_i \ne u_i$$$; $$$1 \le w_i \le 10^9$$$), определяющие $$$i$$$-й маршрут парома. Между каждой парой островов существует не больше одного паромного маршрута, то есть, для каждой пары $$$(v, u)$$$ во входных данных нет ни $$$(u, v)$$$, ни дополнительных вхождений $$$(v, u)$$$.

В следующей строке записаны $$$n$$$ целых чисел $$$a_1$$$, $$$a_2$$$, ..., $$$a_k$$$ ($$$1 \le a_i \le 10^{12}$$$) —– налог на посещение острова $$$i$$$.

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

Выведите $$$n$$$ целых чисел. $$$i$$$-е из них должно быть равно минимальному количеству тугриков, которое придется потратить Моане для того, чтобы с острова $$$i$$$ добраться до какого-либо острова $$$j$$$ (или остаться на острове $$$i$$$), заплатить налог на посещение острова и забрать сердце Те Фити, и вернуться на остров $$$i$$$ (если $$$j \ne i$$$).

Примеры
Входные данные
4 2
15 3 10 2
2 3 2
3 4 3
Выходные данные
15 3 7 2 
Входные данные
3 3
10 20 30
1 2 1
1 3 1
2 3 1
Выходные данные
10 12 12 

C. Петух Хей-Хей и камни
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На острове Мотунуи выросла популяция петухов, и теперь петух Хей-Хей с сородичами ищут себе пропитание.

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

Сейчас $$$n$$$ петухов стоят на прямой, на которой находятся $$$m$$$ камней. Они собираются действовать по следующему алгоритму: определяют камень с максимальной вкусностью и идут к нему по прямой. Тот петух, который дойдет первым, мгновенно съедает самый вкусный камень, и все петухи начинают идти к следующему по вкусности. Если петухи подходят к одному и тому же камню одновременно, то камень съедает петух с меньшим номером.

Для каждого камня определите, какой петух его съест.

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

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

Во второй строке перечислены $$$n$$$ целых чисел $$$a_i$$$ — координаты петухов ($$$0 \le a_i \le 10^9$$$).

В третьей строке ввода дано целое число $$$m$$$ — количество камней ($$$1 \le m \le 10^5$$$).

Затем в $$$m$$$ следующих строках перечислены целые числа $$$k_i$$$ и $$$b_i$$$ — вкусность и координата камня соответственно ($$$1 \le k_i \le 10^9$$$; $$$0 \le b_i \le 10^9$$$).

Гарантируется, что для камней все координаты различны и все вкусности различны.

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

Выведите $$$m$$$ строк, в каждой строке число — номер петуха, который съест соответствующий камень.

Примеры
Входные данные
2
3 10
3
70 5
10 6
100 7
Выходные данные
1
2
2
Входные данные
1
5
4
10 11
5 9
6 10
4 100
Выходные данные
1
1
1
1

D. Очередная игра
ограничение по времени на тест
0.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На острове Мотунуи много примитивных игр.

Сейчас Моана, Симеа и петух Хей-Хей собрались поиграть в островные Крестики-Нолики-Квадратики. Первой ходит Моана «крестиком», вторым ходит Хей-Хей «ноликом», третьей ходит Симеа «квадратиком».

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

Протокол взаимодействия

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

  1. Первый ход делает интерактор, выводя строку в формате «X $$$r_i$$$ $$$c_i$$$», где $$$r_i$$$, $$$c_i$$$ — позиция хода «крестика».
  2. Второй ход делает игрок, вводя строку в формате «0 $$$r_i$$$ $$$c_i$$$», где $$$r_i$$$, $$$c_i$$$ — позиция хода «нолика». Если ход корректен, интерактор выведет на отдельной строке «OK». Обратите внимание, что символ, который вашей программе надо вывести — это ноль, а не заглавная буква 'O'.
  3. Третий ход делает интерактор, вводя строку в формате «# $$$r_i$$$ $$$c_i$$$», где $$$r_i$$$, $$$c_i$$$ — позиция хода «квадратика».

Если какой-то из сделанных вашей программой ходов будет некорректен, интерактор выведет «FAIL» и завершится с вердиктом WA (Wrong Answer). Если кто-то из противников победит, то интерактор сразу же завершится с вердиктом WA.

Если же ваша программа сможет помешать кому-либо из противников выиграть, интерактор завершится с вердиктом OK. Во избежание получения вердиктов TL (Time Limit Exceeded) или IL (Idleness Limit Exceeded) ваша программа также должна завершаться с кодом возврата $$$0$$$ после успешного ответа интерактора на последний запрос.

Также обратите внимание, что вывод каждого запроса должен завершаться переводом строки (символ '{\}n') и сбросом буфера вывода (sys.stdout.flush() в Python, cout.flush() в C++, System.out.flush() в Java и аналогичными методами в других языках).

Пример
Входные данные
X 1 3

OK
# 2 2
X 1 2

OK
# 2 1
X 2 3

OK
# 3 1
Выходные данные

0 3 3



0 1 1



0 3 2

E. Сломанный крюк
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Крюк Мауи опять сломался. В этот раз он далековато от Те Фити, чтобы та помогла ему его починить. Однако он знает одно заклинание, которое может ему помочь (не зря же он полубог).

Это заклинание он всегда носит с собой — оно написано на небольшом клочке его одежды. Но теперь он жалеет, что у него нет тату с этим заклинанием — за время плаваний надпись размыло, и некоторые буквы стали менее узнаваемы. Мауи попытался разобрать их, и в итоге получил строку $$$s$$$, но что-то не сходится.

Он точно помнит, что в верном заклинании нет подстрок, являющихся палиндромами, то есть читающихся одинаково слева направо и справа налево. Также он уверен, что получившаяся у него строка $$$s$$$ не сильно отличается от изначального заклинания.

Помогите ему определить минимальное число букв, которое необходимо заменить в $$$s$$$, чтобы в ней не осталось подстрок-палиндромов. Напомним, что подстрока — это (в данном случае, непустая) последовательность подряд идущих символов строки.

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

В первой строке дано целое число $$$n$$$ — длина строки $$$s$$$ ($$$1 \le n \le 2 \cdot 10^5$$$).

Далее дана сама строка $$$s$$$ из $$$n$$$ маленьких латинских букв (от 'a' до 'z') — заклинание, в котором, возможно, какие-то буквы Мауи разобрал неправильно.

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

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

Затем во второй строке выведите строку $$$s'$$$ из букв от 'a' до 'z', отличающуюся от $$$s$$$ ровно в $$$k$$$ буквах и не имеющую подстрок-палиндромов.

Примеры
Входные данные
7
abacaba
Выходные данные
2
abzcyba
Входные данные
10
aaaaaaaaaa
Выходные данные
6
abcabcabca

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

Богиня Те Фити благосклонна к людям, но периодически проверяет использование ее ресурсов и просит у вождя Туи отчет.

Как только на небе показывается звезда Мотунуи, Туи обязан оставить на берегу океана бумажку с показателем успешности работы племени над природными ресурсами. Чем выше показатель работы, тем более благосклонна будет богиня в дальнейшем, и более плодородными будут земли острова.

Испокон веков этот показатель рассчитывается так: у вождя есть количество кокосов $$$a_i$$$, собранное соплеменниками за каждый из $$$n$$$ дней промежутка времени, тогда успешность использования ресурсов равна $$$$$$P = \sum\limits_{i = 1}^{n} (a_i \bmod t)$$$$$$ для некоторого $$$t \le \min(a)$$$.

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

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

В первой строке ввода дано целое положительное число $$$n$$$ — количество дней в периоде отчета ($$$1 \le n \le 2 \cdot 10^5$$$).

Во второй строке перечислены $$$n$$$ чисел $$$a_i$$$ — количество кокосов, собранных в $$$i$$$-й день ($$$1 \le a_i \le 2 \cdot 10^5$$$).

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

Выведите одно число $$$P$$$ — максимально возможный показатель успешности за период.

Пример
Входные данные
10
8 5 9 6 6 5 8 7 9 6
Выходные данные
19
Примечание

В данном примере оптимально выбрать $$$t = 5$$$.

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

Как известно, океан опасен не только возможными штормами, но и множеством быстрых течений, которые могут унести лодку очень далеко от ожидаемого конца маршрута. Моана и Мауи прекрасно об этом знают, более того, они знают, что всего в океане $$$m$$$ таких течений между $$$n$$$ различными точками.

Течение номер $$$i$$$ соединяет точки $$$u_i$$$ и $$$v_i$$$, и обладает мощностью $$$w_i$$$. В отличие от нашего мира, течения периодически меняют свое направление на противоположное, так что будем считать их двунаправленными.

Чтобы быстрее добраться до острова Те Фити, Моана и Мауи планируют использовать какие-то из течений в своем плавании. Но пока они еще не знают, где находится остров, они планируют выбрать набор течений, по которым можно добраться из любой точки в другую, при этом обладающий минимальной суммарной мощностью.

И все было бы просто, если бы на этом все закончилось, но поскольку надо торопиться, герои могут попросить богов океана изменить мощность любого течения на произвольное целое число от $$$1$$$ до $$$10^9$$$.

Определите для каждого течения $$$f$$$ максимальную мощность $$$p_f$$$ такую, что если сделать мощность $$$f$$$ равной $$$p_f$$$, а остальные течения оставить без изменений, будет существовать искомый набор течений, включающий в себя $$$f$$$.

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

В первой строке ввода даны целые числа $$$n$$$ и $$$m$$$ — количество точек, между которыми протекают течения, и количество течений соответственно ($$$1 \le n \le 10^5$$$; $$$1 \le m \le 4 \cdot 10^5$$$). Гарантируется, что по данным течениям можно добраться из любой точки в любую.

Затем перечислены описания течений: в $$$i$$$-й из следующих $$$m$$$ строк даны числа $$$u_i$$$, $$$v_i$$$ и $$$w_i$$$ ($$$1 \le u_i, v_i \le n$$$; $$$u_i \ne v_i$$$; $$$1 \le w_i \le 10^9$$$).

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

Выведите по одному на каждой строке $$$m$$$ целых чисел $$$f_1$$$, $$$f_2$$$, ..., $$$f_m$$$.

Примеры
Входные данные
2 1
1 2 1000
Выходные данные
1000000000
Входные данные
3 3
1 2 10
2 3 9
3 1 11
Выходные данные
11
11
10
Входные данные
5 8
1 2 1
2 3 2
1 4 6
3 5 2
1 5 3
2 4 1
4 5 8
1 3 4
Выходные данные
3
3
1
3
2
6
2
2
Примечание

В первом примере течение единственное, поэтому при любой мощности оно будет включено в искомый набор.

Во втором примере для каждого течения ответ — это максимум из мощностей двух оставшихся течений (тогда два течения с одинаковой мощностью будут взаимозаменяемы).

H. Целая медиана
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На острове Мотунуи верят в богиню Те Фити, которая обожает медианы и целые числа.

В честь нее придумали игру:

  • Выбирается $$$n$$$ попарно различных целых чисел, $$$i$$$-е число равно $$$a_i$$$.
  • Создается пустое множество чисел $$$m$$$.
  • Числа по одному в произвольном порядке добавляются в $$$m$$$ так, чтобы на любом шаге после добавления очередного числа медиана элементов $$$m$$$ оставалась целым числом.

В данной задаче медиана определяется следующим образом. Упорядочим элементы $$$m$$$ по возрастанию. Тогда если размер множества нечетный, то медиана равна центральному элементу полученной последовательности, иначе — полусумме двух центральных чисел.

Отправляясь в приключение, Моана оставила Симее $$$n$$$ попарно различных чисел. Помогите Симее заполнить множество $$$m$$$ целиком до возвращения Моаны.

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

В первой строке дано целое число $$$n$$$ — количество чисел ($$$1 \le n \le 10^5$$$).

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

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

Выведите числа из набора $$$a$$$ в порядке их добавления в множество, при котором медиана множества всегда оставается целым числом.

Если добавить все числа в $$$m$$$ невозможно, выведите единственное число $$$-1$$$.

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

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

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

Всего в языке есть n букв, а звуки, соответствующие каждой из них, мы обозначим числами a1, ..., an. Разным буквам может соответствовать один и тот же звук. Слов в языке ровно 2n - 1, и каждое из них является произвольной подпоследовательностью этих n букв (порядок букв в слове совпадает с порядком в алфавите).

Обозначим за si i-е в лексикографическом порядке звучание слова. То есть возьмем все слова языка, выпишем последовательность звуков для каждого из них, и упорядочим эти последовательности по возрастанию. Здесь мы считаем, что слово x меньше слова y, если либо последовательность звуков x — префикс последовательности звуков y, либо первый отличающийся звук в x меньше, чем соответствующий звук в y.

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

для заранее заданных B и M.
Входные данные

В первой строке ввода даны целые числа n, k, B и M — количество букв в алфавите, количество интересующих вас слов и параметры хеша (1 ≤ k, n ≤ 105; k ≤ 2n - 1; 1 ≤ B, M ≤ 106).

Во второй строке перечислены n целых чисел ai — номера звуков каждой буквы (1 ≤ ai ≤ 105).

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

Для k лексикографически минимальных слов языка выведите по очереди хеши их звучаний по одному в каждой строке.

Примеры
Входные данные
2 3 1 5
1 2
Выходные данные
1
3
2
Входные данные
3 4 2 3
1 3 1
Выходные данные
1
1
0
2
Входные данные
5 6 23 1000
1 2 4 2 3
Выходные данные
1
25
25
577
274
578
Примечание

В первом примере порядок слов следующий: , , .

Во втором примере слова звучат как , , , , , .

J. Спасение Полинезии
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

Однако однажды случилась катастрофа: богиня Те Фити потеряла свое сердце, все магические пути исчезли, а острова остались изолированными друг от друга. Вождь Туи, отчаянно желая восстановить порядок, собрал лучших шаманов. Маги предложили древний ритуал восстановления, согласно которому можно было создавать новые островки — магические узлы. Всего было создано $$$k$$$ новых островков.

Из каждого нового острова $$$n+1, n+2, \ldots, n+k$$$ можно создать какие-то пути на исходные $$$n$$$ островов. Более точно, для каждого $$$i$$$ от $$$1$$$ до $$$k$$$ известны параметры $$$l_i$$$, $$$r_i$$$ и $$$c_i$$$, означающие, что, потратив $$$c_i$$$ энергии, можно создать путь с острова $$$n + i$$$ на остров $$$j$$$, если $$$l_i \le j \le r_i$$$. Разумеется, с каждого нового острова можно провести несколько путей, но за каждый придется отдать $$$c_i$$$ энергии.

Определите, удастся ли с помощью этих путей соединить все $$$n + k$$$ островов в единую сеть, чтобы от каждого острова можно было добраться до любого другого. И, если можно, определите минимальное количество энергии, необходимое для этого.

Если вы справитесь, древняя Полинезия будет спасена, а былая магия вернет островам процветание. Но если вы потерпите неудачу — острова останутся изолированными, и мир навсегда погрузится в хаос. Все зависит от вас!

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

Первая строка содержит два целых числа $$$n$$$ и $$$k$$$ — количество изначальных и новых островов ($$$1 \le n, k \le 2 \cdot 10^5$$$).

Следующие $$$k$$$ строк описывают возможные пути с новых островов: в $$$i$$$-й из них даны три целых числа $$$l_i$$$, $$$r_i$$$ и $$$c_i$$$ — границы на возможные концы пути и стоимость каждого такого пути ($$$1 \le l_i \le r_i \le n$$$; $$$1 \le c_i \le 10^9$$$).

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

Если удастся соединить все острова в Полинезии, выведите минимальное необходимое для этого количество энергии. Если же это невозможно, выведите $$$-1$$$.

Примеры
Входные данные
4 3
1 3 2
1 2 4
2 4 5
Выходные данные
20
Входные данные
6 2
4 6 7
1 2 7
Выходные данные
-1
Входные данные
100000 4
1 100000 10
1 100000 76
1 100000 12
1 100000 12
Выходные данные
1000100

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

Иногда все же надо и отдыхать от приключений в океане, поэтому как-то раз Моана и Мауи решили сыграть в игру. Разумеется, шахмат тогда еще не существовало, поэтому они придумали очень упрощенную их версию.

Оба выбрали себе по одной фигуре, а также они нарисовали поле размером $$$n \times m$$$ на песке. Так как они играли в импровизированные первые шахматы, они выбирали ровно одну из двух фигур: ладью или слона (причем не обязательно, чтобы Мауи и Моана выбрали разные фигуры), которые ходят по стандартным шахматным правилам (ладья ходит по горизонтали или вертикали на произвольное расстояние, а слон — так же по диагонали).

Победителем считается тот, кто сможет побить фигуру противника. Если спустя $$$10^{100}$$$ ходов никто не сможет сделать этого, игра признается ничейной.

В какой-то момент на доске сложилась следующая ситуация: фигура Мауи находится на клетке с координатами $$$(x_1, y_1)$$$, а фигура Моаны — на клетке $$$(x_2, y_2)$$$ (нумерация строк и столбцов начинается с $$$1$$$). Сейчас ходит Мауи. Понимая, что Моана действует хитро и стратегически, Мауи просит вас помочь оценить шансы на победу: кто выиграет, если оба будут играть оптимально?

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ — количество наборов входных данных ($$$1 \leq t \leq 5000$$$). Далее следует описание наборов входных данных.

Первая строка каждого набора данных содержит два целых числа $$$n$$$ и $$$m$$$ — размеры доски ($$$1 \leq n, m \leq 10^9$$$).

Вторая строка содержит информацию о фигуре Мауи: два целых числа $$$x_1$$$ и $$$y_1$$$ (координаты его фигуры), после которых идет символ $$$c_1$$$ ($$$1 \leq x_1 \leq n$$$; $$$1 \leq y_1 \leq m$$$; $$$c_1 \in \{\text{'\t{B}'}, \text{'\t{R}'}\}$$$). Если $$$c_1 = \text{'\t{B}'}$$$, то его фигура — это слон, а если 'R' — то ладья.

Третья строка содержит информацию о фигуре Моаны ($$$x_2$$$, $$$y_2$$$, $$$c_2$$$) в том же формате. Гарантируется, что фигуры стоят на разных клетках, и каждая из фигур сможет сделать какой-нибудь ход.

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

Для каждого набора данных выведите единственную строку: «Win», если в этой позиции Мауи сможет победить за конечное число ходов вне зависимости от игры Моаны; «Draw», если позиция ничейная; «Lose», если в этой позиции победит Моана.

Пример
Входные данные
5
1 10
1 5 R
1 7 R
4 4
1 1 B
4 4 R
4 4
4 4 R
1 1 B
2 2
1 2 R
2 1 B
1234 5678
130 57 B
239 158 B
Выходные данные
WIN
WIN
DRAW
WIN
DRAW

L. Магические ракушки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Моана отправилась в путешествие на своем каноэ, чтобы спасти свой остров. Для этого ей нужно собрать специальные магические ракушки, расположенные на $$$2^n$$$ островах. Количество магических ракушек на $$$i$$$-м острове равно $$$a_i$$$, причем острова нумеруются с нуля и до $$$2^n - 1$$$.

Моана хочет собрать как можно больше ракушек как можно быстрее, поэтому хочет посетить два острова и собрать все ракушки на них. Но может случиться такое, что богиня огня Те Ка будет препятствовать ей в ее приключении, и Моана сможет посетить два острова с номерами $$$i$$$ и $$$j$$$ только если $$$i\ |\ j \leq k$$$, где $$$|$$$ означает операцию побитового «или».

Величина $$$k$$$ заранее неизвестна, поэтому помогите Моане для каждого $$$k$$$ от $$$1$$$ до $$$2^n - 1$$$ найти $$$\max\limits_{i\,|\,j \le k} a_i + a_j$$$. Еще раз обратим внимание, что номера островов начинаются с нуля, иными словами, их двоичные записи идут от $$$n$$$ нулей до $$$n$$$ единиц.

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

В первой строке дано целое число $$$n$$$, означающее, что всего есть $$$2^n$$$ островов с ракушками $$$1 \leq n \leq 18$$$.

Во второй строке перечислены $$$n$$$ целых чисел $$$a_i$$$ — количество ракушек на каждом острове ($$$1 \le a_i \le 10^9$$$).

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

Для каждого $$$k$$$ от $$$1$$$ до $$$2^n - 1$$$ выведите ответ на задачу — максимальную достижимую с таким $$$k$$$ величину $$$a_i + a_j$$$. Ответы для разных $$$k$$$ разделяйте пробелами.

Примеры
Входные данные
1
10 20
Выходные данные
30 
Входные данные
2
1 2 3 1
Выходные данные
3 4 5 
Входные данные
3
1 2 3 4 5 6 7 8
Выходные данные
3 4 7 7 11 12 15