#arc041d. [arc041_d]辺彩色

[arc041_d]辺彩色

问题

给定由NN个顶点和MM条边组成的无向图。图是连通的,不包含自环和重复边。边被编号为11MM

起初,边没有被涂上颜色。高桥君想要使第ii1iM1≤i≤M)条边着上颜色cic_i。其中cic_ir(红色)或b(蓝色)。高桥君按照以下方法对边进行着色:

  • 首先,选择一个喜欢的顶点作为起点。然后,可以自由选择“移动到相邻顶点”这一步骤。
  • 对每一步使用的边进行着色。在第奇数步时,用红色涂色;在第偶数步时,用蓝色涂色。
  • 如果已经有颜色的边再次涂色,它将被新的颜色覆盖。

判断是否可以使所有的边都涂上目标颜色。


输入

输入以以下形式从标准输入中给出。

NN MM a1a_1 b1b_1 c1c_1 a2a_2 b2b_2 c2c_2 : aMa_M bMb_M cMc_M

  • 11行包含两个整数,表示顶点数量NN2N2,0002≤N≤2,000)和边数量MM1M2,0001≤M≤2,000),以空格分隔。
  • 从第22行开始的MM行包含边的信息。其中第ii行包含三个整数aia_ibib_i1ai<biN1≤a_i<b_i≤N)和颜色cic_i,以空格分隔。表示如下:
    • ii条边连接着顶点aia_ibib_i。但是如果iji≠j,这意味着aiaja_i≠a_jbibjb_i≠b_j
    • 希望为第ii条边涂上颜色cic_i。其中cic_ir(红色)或b(蓝色)。
  • 图是连通的。

输出

如果可以使所有的边都涂上目标颜色,则输出Yes;否则,输出No。在输出末尾换行。


示例输入1


6 5
1 2 r
2 3 b
3 4 r
4 5 b
5 6 r

示例输出1


Yes

例如,选择顶点11作为起点,并对边进行上图所示的着色。


示例输入2


4 3
1 2 r
1 3 r
1 4 r

示例输出2


Yes

例如,选择顶点22作为起点,并对边进行上图所示的着色。覆盖的颜色由虚线表示。


示例输入3


3 3
1 2 b
1 3 b
2 3 b

示例输出3


No