Тайное послание

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

Это задача с двойным запуском. На каждом тесте ваше решение будет запущено два раза.

На уроке информатики Алеся и Борис изучают криптографию. Ребята решили изобрести свой способ шифрования сообщений.

Алеся выбирает kk различных целых чисел от 11 до nn и обозначает получившееся множество как TT. Алеся хочет передать Борису в качестве сообщения множество TT в зашифрованном виде. Для этого по множеству TT Алеся построит и передаст Борису другое множество RR, также состоящее из целых чисел от 11 до nn.

Ребята не хотят, чтобы после шифрования размер сообщения изменялся, поэтому RR также должно содержать ровно kk чисел. А ещё они считают, что если TT и RR будут содержать хотя бы один общий элемент, то их шифрование будет недостаточно надежным. Поэтому не должно существовать числа, которое входит и в TT, и в RR, то есть множества TT и RR не должны пересекаться. Гарантируется, что kn/2k \le n / 2, поэтому по множеству TT всегда возможно построить хотя бы одно множество RR.

Когда Борис получит зашифрованное сообщение RR, он должен будет его расшифровать и получить исходное сообщение TT.

Помогите Алесе и Борису придумать и реализовать алгоритмы шифрования и дешифрования. При первом запуске ваша программа будет выступать в роли Алеси, а при втором запуске --- в роли Бориса.

입력

В первой строке входных данных дано одно число aa, равное 11 или 22 --- номер запуска вашей программы.

Во второй строке дано одно число mm --- количество сообщений (1m300,0001 \le m \le 300\\,000), которое ваша программа должна зашифровать (в первом запуске) или расшифровать (во втором запуске).

Следующие 2m2m строк содержат описания mm сообщений, по две строки на сообщение.

В первой строке сообщения записаны два целых числа n_in\_i и k_ik\_i (2n_i1092 \le n\_i \le 10^9, 1k_i300,0001 \le k\_i \le 300\\,000, k_in_i2k\_i \le \frac{n\_i}{2}). Во второй строке сообщения записаны k_ik\_i различных целых чисел от 11 до n_in\_i в возрастающем порядке.

Гарантируется, что сумма всех значений k_ik\_i в одном тесте не превосходит 300,000300\\,000.

Если a=1a=1, то данные числа являются исходным сообщением. Если a=2a=2, то данные числа являются результатом запуска вашей программы для шифрования какого-либо сообщения при первом запуске вашей программы.

출력

Программа должна вывести mm строк, ii-я строка должна содержать k_ik\_i различных целых чисел от 11 до n_in\_i в возрастающем порядке.

При первом запуске для каждого исходного сообщения T_iT\_i программа должна вывести множество R_iR\_i, которое не должно пересекаться с T_iT\_i.

При втором запуске программа для каждого зашифрованного сообщения R_iR\_i должна восстановить исходное сообщение T_iT\_i.

힌트

Обратите внимание, что в примере приведены конкретные варианты вывода в первом запуске и ввода во втором запуске. Если ваша программа выведет другое множество RR, при втором запуске ввод также будет другой.

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