#arc108c. [arc108_c]Keep Graph Connected

[arc108_c]Keep Graph Connected

题目描述

给定一个无向连通图,有 NN 个顶点从 11NN 编号和 MM 条边从 11MM 编号。给定图中可能包含多重边但没有自环。

每条边都有一个整数标签,范围在 11NN 之间(包含边界值)。边 ii 有标签 cic_i,它双向连接顶点 uiu_iviv_i

Snuke 将在每个顶点上写一个介于 11NN 之间(包含边界值)的整数(可能有多个顶点上写着相同的整数),然后仅保留满足以下条件的边,移除其他边:

条件:设 xxyy 是边的两个端点上的整数。当且仅当 xxyy 中恰好有一个等于边的标签时,边满足条件。

如果存在一种“好”的整数写法,在移除不满足上述条件的边后图仍然是连通的,则判断是否存在这种整数写法,并给出一种存在的写法。

约束条件

  • 2N1052 \leq N \leq 10^5
  • N1M2×105N-1 \leq M \leq 2 \times 10^5
  • 1ui,vi,ciN1 \leq u_i,v_i,c_i \leq N
  • 给定的图是连通的,且没有自环。

输入

从标准输入读入输入数据的格式如下:

NN MM u1u_1 v1v_1 c1c_1 \vdots uMu_M vMv_M cMc_M

输出

如果不存在一种“好”的整数写法,则输出 No。否则,输出 NN 行,第 ii 行应包含写在顶点 ii 上的整数。任何一种“好”的整数写法都将被接受。

示例输入 1

3 4
1 2 1
2 3 2
3 1 3
1 3 1

示例输出 1

1
2
1
  • 我们在顶点 112233 上分别写了 112211
  • 11 连接顶点 1122,其标签为 11
    • 仅顶点 11 上写的整数等于标签,因此这条边不会被移除。
  • 22 连接顶点 2233,其标签为 22
    • 仅顶点 22 上写的整数等于标签,因此这条边不会被移除。
  • 33 连接顶点 1133,其标签为 33
    • 顶点上写的整数与标签都不相等,因此这条边将被移除。
  • 44 连接顶点 1133,其标签为 11
    • 顶点上写的整数与标签都相等,因此这条边将被移除。
  • 移除边 3344 后,图仍然连通,因此这是一种“好”的整数写法。