30063 - Red and Blue Spanning Tree

通过次数

1

提交次数

6

时间限制 : 1 秒
内存限制 : 128 MB

有一个包含 N 个顶点、M 条边的连通无向图 G。对于 i=1,2,\ldots,M,第 i 条边连接顶点 a_ib_i,如果 c_i= R,则该边为红色;如果 c_i= B,则该边为蓝色。

请判断是否存在满足以下条件的 G 的一棵生成树。如果存在,请给出其中一棵。

  • 对于所有 i=1,2,\ldots,N
    • 如果 s_i= R,则顶点 i 至少有一条红色的边作为端点。
    • 如果 s_i= B,则顶点 i 至少有一条蓝色的边作为端点。

输入

输入通过标准输入按以下格式给出。

N M

a1 b1 c1

...

aM bM cM

s1 s2 ... sN

输出

如果不存在满足条件的 G 的生成树,输出 No。 否则输出以下形式:

Yes

t1 t2 ... t_{N-1}

其中 t_i 表示生成树中第 i 条边在 G 中的编号。 如果存在多种满足条件的生成树,输出其中任意一种均可。

样例

输入

3 3
1 2 R
1 3 B
2 3 B
RRB

输出

Yes
2 1

输入

3 4
1 2 R
1 2 B
1 3 B
2 3 B
RRR

输出

No

输入

8 16
5 7 B
2 7 R
1 6 R
1 4 R
6 7 R
4 6 B
4 8 R
2 3 R
3 5 R
6 7 B
2 6 B
5 6 R
1 3 B
4 5 B
2 7 B
1 8 B
BRBRRBRB

输出

Yes
1 2 4 9 11 13 16

提示

限制条件

  • 2 \leq N \leq 2 \times 10^5
  • N-1 \leq M \leq 2 \times 10^5
  • 1 \leq a_i < b_i \leq N
  • c_iRB
  • i \neq j,则 (a_i, b_i, c_i) \neq (a_j, b_j, c_j)
  • 给定的图是连通的
  • s_iR 或 `B$
  • N, M, a_i, b_i 均为整数

样例解释 1

G 的第 1、2 条边组成的生成树满足条件,具体如下:

  • s_1= R,因此对于 i=1,要求顶点 1 至少有一条红色的边作为端点。第 1 条边满足此条件。
  • s_2= R,因此对于 i=2,要求顶点 2 至少有一条红色的边作为端点。第 1 条边满足此条件。
  • s_3= `B,因此对于 i=3$,要求顶点 3 至少有一条蓝色的边作为端点。第 2 条边满足此条件。