Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×

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

У AquaMoon было $$$n$$$ строк длины $$$m$$$ каждая. $$$n$$$ — нечетное число.

Когда AquaMoon отошла, Cirno попыталась разбить эти $$$n$$$ строк на пары. После того, как она сделала $$$\frac{n-1}{2}$$$ пару, она обнаружила, что осталась ровно одна строка без пары!

В гневе она перемешала каждую пару строк. Для каждой пары она выбрала некоторые позиции (хотя бы $$$1$$$ и не более, чем $$$m$$$) и обменяла символы в двух строках этой пары на выбранных позициях.

Например, если $$$m = 6$$$ и две строки «abcdef» и «xyzklm» в одной паре и Cirno выбрала позиции $$$2$$$, $$$3$$$ и $$$6$$$ она поменяет 'b' с 'y', 'c' с 'z' и 'f' с 'm'. В результате строки станут «ayzdem» и «xbcklf».

Затем Cirno украла строку, оставшуюся без пары, и расположила все оставшиеся строки в некотором порядке.

AquaMoon обнаружила оставшуюся $$$n-1$$$ строку в полном беспорядке. Также, она помнит изначальные $$$n$$$ строк. Она хочет узнать, какую строку украли, но она не очень хороша в программировании. Можете ли вы помочь ей?

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

Эта задача сделана как интерактивная. Это означает, что ваше решение будет считывать входные данные, которые вывел интерактор. Однако, интерактор выведет полные входные данные в начале, и после этого вы должны будете вывести ответ. Поэтому вы должны решать задачу так, как если бы вы решали обычную, не интерактивную задачу, потому что у вас не будет никакого процесса взаимодействия. Единственная вещь, про которую вы не должны забыть — это сбросить буфер выходного потока после вывода ответа. Иначе ваше решение может получить вердикт «Решение «зависло»». Обратитесь к руководству по интерактивным задачам для более детальной информации про сброс буфера выходного потока.

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

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

Следующие $$$n$$$ строк каждая содержат строку длины $$$m$$$, описывающую изначальные $$$n$$$ строк. Все строки состоят из символов латинского алфавита в нижнем регистре.

Следующая $$$n-1$$$ строка каждая содержит строку длины $$$m$$$, описывающую строки, после того, как Cirno сделала обмены и переставила их.

Гарантируется, что $$$n$$$ нечетно и что сумма $$$n \cdot m$$$ по всем наборам входных данных не превосходит $$$10^5$$$.

Формат теста для взлома:

В первой строке должно находиться единственное целое число $$$t$$$. После этого должно следовать описание $$$t$$$ наборов входных данных в следующем формате:

В первой строке должно находиться два целых числа $$$n$$$ и $$$m$$$.

В следующих $$$n$$$ строках должны быть записаны $$$n$$$ строк длины $$$m$$$, описывающих изначальные строки.

Следующие $$$\frac{n-1}{2}$$$ строк должны описывать пары. Каждая должна содержать в следующем порядке: индекс первой строки $$$i$$$ ($$$1 \leq i \leq n$$$), индекс второй строки $$$j$$$ ($$$1 \leq j \leq n$$$, $$$i \neq j$$$), количество позиций для обмена $$$k$$$ ($$$1 \leq k \leq m$$$) и список из $$$k$$$ позиций, в которых будет сделан обмен ($$$k$$$ различных индексов от $$$1$$$ до $$$m$$$ в любом порядке).

В последней строке должна находиться перестановка из целых чисел от $$$1$$$ до $$$n$$$, описывающая способ, которым строки будут перемешаны. Строки будут расположены в том порядке, в котором индексы следуют в перестановке, индекс украденной строки при этом будет пропущен.

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

Для каждого набора входных данных выведите украденную строку в единственной строке.

Пример
Входные данные
3
3 5
aaaaa
bbbbb
ccccc
aaaaa
bbbbb
3 4
aaaa
bbbb
cccc
aabb
bbaa
5 6
abcdef
uuuuuu
kekeke
ekekek
xyzklm
xbcklf
eueueu
ayzdem
ukukuk
Выходные данные
ccccc
cccc
kekeke
Примечание

В первом наборе входных данных в строках «aaaaa» и «bbbbb» обменяли все позиции и «ccccc» является украденной строкой.

Во втором наборе входных данных в строках «aaaa» и «bbbb» обменяли первые две позиции и «cccc» является украденной строкой.

Это первый тест, записанный в формате для взломов:


3
3 5
aaaaa
bbbbb
ccccc
1 2 5 1 2 3 4 5
2 1 3
3 4
aaaa
bbbb
cccc
1 2 2 1 2
2 1 3
5 6
abcdef
uuuuuu
kekeke
ekekek
xyzklm
1 5 3 2 3 6
2 4 3 2 4 6
5 4 1 2 3