#arc052c. [arc052_c] 高橋くんと不思議な道

[arc052_c] 高橋くんと不思議な道

问题文档

NN 个城镇,从城镇 00 到城镇 N1N-1。这些城镇之间通过 MM 条双向道路连接。

道路分为 AA 类型和 BB 类型。经过 AA 类型的道路需要花费 11 单位的代价。经过 BB 类型的道路时,代价为 (之前经过的 BB 类型道路数量)+1+1

其中,第 ii 条道路 (1iM1 ≤ i ≤ M) 连接了城镇 AiA_i 和城镇 BiB_i,当 Ci=0C_i = 0 时为 AA 类型,当 Ci=1C_i = 1 时为 BB 类型。

请求出从城镇 00 到每个城镇的最小移动代价。

假设无法从城镇 00 到达的城镇不存在。

约束条件

  • 所给数字均为整数。
  • 1N1041 ≤ N ≤ 10^4
  • 1M1051 ≤ M ≤ 10^5
  • 0Ai,BiN10 ≤ A_i, B_i ≤ N - 1
  • 0Ci10 ≤ C_i ≤ 1

输入

输入通过标准输入给出,格式如下:

NN MM C1C_1 A1A_1 B1B_1 C2C_2 A2A_2 B2B_2CMC_M AMA_M BMB_M

输出

输出为 NN 行。第 ii 行 (1iN1 ≤ i ≤ N) 输出从城镇 00 到城镇 i1i-1 需要的最小代价。

示例1

3 3
0 0 1
1 1 2
1 2 0

输出示例1

0
1
1

示例2

7 8
1 0 1
1 1 2
1 2 5
1 5 6
0 1 3
0 3 4
0 4 5
0 2 6

输出示例2

0
1
3
2
3
4
4

示例3

8 9
0 0 1
0 1 2
0 2 3
0 5 6
0 6 7
1 1 3
1 3 4
1 4 5
1 5 7

输出示例3

0
1
2
2
4
6
7
8