AT_arc229_e [ARC229E] Taka and Hashi

Description

高橋君は有名お笑いコンビ『タカアンドハシ』、すなわちタカとハシに分裂できることで知られています。タカとハシが合体すると元の高橋君に戻ります。 $ N $ 頂点 $ M $ 辺の連結無向グラフがあり、各辺には $ 1,2,3 $ のいずれかのラベルが貼られています。 $ i $ 番目の辺は頂点 $ u_i $ と頂点 $ v_i $ を結び、ラベル $ l_i $ が貼られています。グラフは自己ループを含みませんが多重辺を含む可能性があります。 各辺は高橋君・タカ・ハシのうち $ 1 $ 人しか通行できず、ラベル $ 1,2,3 $ の辺を通行できるのは、それぞれ高橋君、タカ、ハシのみです。 はじめ、高橋君は頂点 $ 1 $ にいます。高橋君たちは次の操作を自由な順序で $ 0 $ 回以上行えます。 - 高橋君が自身のいる頂点上でタカとハシに分裂する。このとき、タカとハシはともにその頂点にいる。 - 現在存在する人のうち $ 1 $ 人が、その人の通行可能な辺を $ 1 $ 本通って移動する。 - タカとハシが同じ頂点にいるとき、その頂点で二人が合体して高橋君に戻る。 一連の操作を行った後に高橋君がいることのできる頂点を、全て昇順に列挙してください。 $ T $ 個のテストケースが与えられるのでそれぞれについて答えを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ T $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ 各テストケース $ \mathrm{case}_t $ は以下の形式で与えられる。 > $ N $ $ M $ $ u_1 $ $ v_1 $ $ l_1 $ $ u_2 $ $ v_2 $ $ l_2 $ $ \vdots $ $ u_M $ $ v_M $ $ l_M $

Output Format

$ 2T $ 行出力せよ。 各テストケースでは、条件を満たす頂点の番号を昇順に列挙した列を $ a_1,a_2,\dots,a_k $ として以下の形式で出力せよ。 > $ k $ $ a_1 $ $ a_2 $ $ \dots $ $ a_k $

Explanation/Hint

### Sample Explanation 1 $ 1 $ つ目のテストケースについて考えます。 高橋君は、ラベル $ 1 $ の辺を通って頂点 $ 1 $ から頂点 $ 2 $ へ移動できます。頂点 $ 2 $ でタカとハシに分裂した後、タカが $ 2 \to 3 \to 4 $ 、ハシが $ 2 \to 4 $ と移動し、頂点 $ 4 $ で合体することで、高橋君が頂点 $ 4 $ にいる状態を作ることができます。さらに、高橋君はラベル $ 1 $ の辺を通って頂点 $ 5 $ へ移動できます。 頂点 $ 3 $ に高橋君がいる状態を作ることはできないため、条件を満たす頂点は $ 1,2,4,5 $ です。 ### Constraints - $ 1 \leq T \leq 10^5 $ - $ 2 \leq N \leq 2 \times 10^5 $ - $ N-1 \leq M \leq 2 \times 10^5 $ - $ 1 \leq u_i \lt v_i \leq N $ - $ 1 \leq l_i \leq 3 $ - 入力で与えられるグラフは連結 - 全てのテストケースに対する $ N $ の総和は $ 2 \times 10^5 $ 以下 - 全てのテストケースに対する $ M $ の総和は $ 2 \times 10^5 $ 以下 - 入力される値は全て整数