#P15110. Silent End

Silent End

题目背景

机房里有一些神在讨论代码部队。grg 发现自己太菜参与不进去,所以只能听他们高谈阔论。

题目描述

grg 听到了其中 mm 条评价。第 ii 条形式为 (ui,vi,wi)(u_i,v_i,w_i),分别为评价者,被评价者以及预估的 rating。然而这些评价不一定准确。具体地,如果评价者的真实 rating 大于等于被评价者,他会低估被评价者导致 ww 比实际 rating 小 11,若小于被评价者,他会高估被评价者导致 ww 比实际 rating 大 11

因为这群人关系很好,所以每个人都至少被评价了一次

现在 grg 想要你构造一组这些人的 rating,需要满足所有评价。如果不存在,请报告。

输入格式

第一行两个正整数 n,mn,m

接下来 mm 行,每行三个非负整数 ui,vi,wiu_i,v_i,w_i,含义如上。

输出格式

若无解,请输出 NO

否则输出 YES,再输出一行 nn 个整数,代表你构造的这些人的 rating,你需要保证构造的这些这些 rating 处于带符号 32 位整数的范围内,否则随机报错。

5 7
1 2 4
1 3 5
5 4 4
2 5 7
5 1 1
4 2 2
1 5 7
YES
2 3 4 5 6
4 6
1 2 1
3 2 2
4 2 3
1 3 5
1 4 6
4 1 4
NO
3 4
1 2 1
3 2 4
3 1 2
2 3 2
NO

提示

本题采用捆绑测试。

Subtask 1(30pts):\texttt{Subtask 1(30pts)}: n20n \leq 20m100m \leq 100

Subtask 2(70pts):\texttt{Subtask 2(70pts)}: 无额外限制。

对于所有的数据,满足 1n51051\le n \leq 5 \cdot 10^5nm106n\le m \leq 10^60wi1090 \leq w_i \leq 10^9

保证每个人都至少被评价了一次。