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

Скажем, что две строки $$$s$$$ и $$$t$$$ рифмуются, если обе строки имеют длину хотя бы $$$k$$$, и их $$$k$$$ последних букв равны. Например, для $$$k = 3$$$ строки abcd и cebcd рифмуются, строки ab и ab не рифмуются, строки aaaa и aaaaa рифмуются, а строки abcd и abce — нет.

Вам задано $$$n$$$ пар строк $$$(s_i, t_i)$$$. Для каждой пары известно, должны ли строки рифмоваться или не должны.

Определите все возможные неотрицательные целые значения $$$k$$$, для которых пары, которые должны рифмоваться, рифмуются, а пары, которые не должны рифмоваться, не рифмуются.

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

Во входных данных заданы несколько наборов входных данных. В первой строке задано одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных. Далее следуют сами наборы входных данных.

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

В следующих $$$n$$$ строках заданы описания пар — по одной паре в строке. В $$$i$$$-й строке заданы строки $$$s_i$$$ и $$$t_i$$$ и метка $$$r_i$$$ через пробел. Строки непустые, состоят только из строчных букв латинского алфавита и длины строк не превосходят $$$2 \cdot 10^5$$$. Метка $$$r_i$$$ равна $$$1$$$, если строки должны рифмоваться, или $$$0$$$, если они не должны рифмоваться.

Гарантируется, что в каждом наборе входных данных есть хотя бы одна пара с $$$r_i$$$ равным $$$1$$$ и что суммарная длина строк по всем наборам входных данных не превосходит $$$4 \cdot 10^5$$$.

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

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

Пример
Входные данные
3
1
kotlin heroes 1
2
join kotlin 1
episode eight 0
4
abc abcdef 0
xyz zzz 1
aaa bba 0
c d 0
Выходные данные
1
0
2
1 2
0
Примечание

В первом наборе входных данных, если $$$k$$$ будет хотя бы $$$1$$$, то kotlin и heroes не будут рифмоваться.

Во втором наборе, для $$$k = 2$$$ join и kotlin рифмуются, и episode и eight не рифмуются.